<4D F736F F D20C0A9B5B5BFECBDC3BDBAC5DB5FBBF9C7C3B1B3C0E75FC7A5C1F6>

Size: px
Start display at page:

Download "<4D6963726F736F667420576F7264202D20C0A9B5B5BFECBDC3BDBAC5DB5FBBF9C7C3B1B3C0E75FC7A5C1F6>"

Transcription

1 Windows System Programming 교재 Sample 아임구루 부설 아이오 교육센터 ( )

2 SECTION 01 어셈블리 언어와 C언어의 원리 요즘은 어셈블리언어를 거의 사용하지 않고 C/C++/Java 등의 고급 언어를 사용합니다. 하지만 간단 한 어셈블리어를 읽고 이해 할 수 있다면 시스템에 대해 보다 깊이 있게 이해를 할 수 있게 됩니다. TEB, PEB 접근 등 다양한 윈도우 시스템 고급 기법을 이해 하기 위해서 약간의 어셈블리에 대한 지 식은 반드시 필요합니다. 또한 함수호출의 원리, Calling Convention, 지역 변수의 원리 등 C/C++의 근본적인 원리를 정확히 이해 할 수 있습니다. 주요 내용 어셈블리 언어의 기본 코드를 이해 하고 C 함수와 어셈블리 함수를 상호 호출하는 방법을 학습 합니다. 함수 호출의 정확한 원리를 이해하고 다양한 함수 호출규약(Calling Convention)을 정확히 이해하고 각각의 방식의 장단점을 학습 합니다. 인라인 어셈블리를 사용해서 TEB, PEB 등의 윈도우 구조체에 접근하는 방법을 학습 합니다. OllyDbg 를 사용해서 간단한 Crack, Reversing 방법을 학습 합니다. 1

3 Item 1 01 PE Format 핵심개념 PE Format 의 구조 IMAGE_NT_HEADERS( IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER) Sections PEview.exe 사용자 정의 섹션 만들기 1. 실행파일의 구조 Portable Executable File Format 2

4 2. 실행파일 헤더 PE 구조 IMAGE_DOS_HEADER MS DOS Stub IMAGE_NT_HEADERS IMAGE_SECTION_HEADER Signature IMAGE_FILE_HEADER IMAGE_OPTIONAL_HEADER MS DOS 시절에 사용하던 헤더 현재는 사용되지 않는다. 항상 PE 로 되어 있다. Machine종류, 날짜등 가장 중요한 헤더 AddressOfEntry, Image Base Stack, Heap 크기등의 정보를 가진다 각 Section의 정보를 담고 있다. Section의 개수만큼 존재한다. 3. Sections 실행 파일은 PE 헤더 다음으로 Section 이라는 요소로 구분된다. 대부분의 표준 Section 은. 으로 시작한다. Section Name.bss.CRT.data.debug.didata.edata.idata.rdata.reloc.rsrc.text.tls.xdata Purpose Uninitialized data Read-only C run-time data Initialized data Debugging information Delay imported names table Exported names table Imported names table Read-only run-time data Relocation table information Resources Code Thread-Local-Storage Exception Handling Table 3

5 4. PEView #include <stdio.h> char s[] = "abcdefg"; void main() printf("hello, world\n"); 5. 사용자 정의 섹션 추가 하기 #pragma data_seg() #pragma code_seg() char s1[] = "abcdefg"; #pragma data_seg("mydata") char s2[] = "opqrstu"; #pragma data_seg() #pragma code_seg("mycode") void foo() #pragma code_seg() void main() 4

6 Item 1 02 함수 호출의 원리 1 핵심개념 함수 호출의 원리 마지막 인자부터 stack 에 넣고 함수로 이동 함수의 반환 값은 EAX 레지스터를 사용 asm 키워드로 인라인 어셈블리 사용하기 1. 함수 호출과 stack 구조 #include <stdio.h> #include <stdlib.h> void goo() printf("goo\n"); exit(0); void foo( int a, int b) int x = 10; int y[2]=0,0; y[2] = 20; printf("%d\n", x); // A y[4] = (int)goo; // B return; void main() int a = 10; foo( 1,2); int a = foo(1,2) 2 1 Return Address EBP int x = int y[2] 0 0 Stack High Address Growing Stack Low Address 5

7 2. 인라인 어셈블리 사용하기 asm 키워드를 사용한 인라인 어셈블리 int Add(int a, int b) int c = a + b; return c; int main() int n = 0; Add(1,2); asm mov n, eax printf("%d\n", n); int Add(int a, int b) int c = a + b; asm mov int main() int n = 0; n = Add(1,2); eax, c printf("%d\n", n); 6

8 Item 1 03 Hello, Assembly 핵심개념 어셈블리 소스의 이해 어셈블리 기본 코드 전역변수 사용하기 Compile & Linking Console 창에서 Command Line 컴파일 하기 VC++과 nasm 의 연동 1. Hello, Assembly cl main.c /c nasm f win32 o first. obj first.asm link main.obj first.obj main.c first.asm #include <stdio.h> int asm_main(); segment segment.data.text int main() int n = asm_main(); _asm_main: global _asm_main printf("결과 : %d\n", n); mov eax, 10 ret 7

9 2. nasm 과 VC++ 연동하기 first.asm 에서 오른쪽 버튼 => 속성 메뉴 선택 항목 형식에서 사용자 지정 빌드 선택후 적용 버튼 사용자 지정 빌드 도구 선택후 명령줄 / 출력 항목에 추가 8

10 3. 어셈블리에서 전역변수 사용하기 segment.data 전역변수 레이블(L1)은 주소의 의미 주소가 가르키는 값을 꺼내려면 dword [L1] MASM 의 경우 dword ptr[l1] segment.data L1 DD 100 ; int L1 = 100, DD : Define DWORD L2 DW 10 ; short L2 = 10 L3 DB "hello", 0 ; char L3[] = "hello" segment.text _asm_main: global _asm_main mov dword [L1], 200 ; NASM : dword [L1], MASM : dword ptr[l1] mov eax, dword [L1] ; L1은 주소, [L1] 은 값. ret 9

11 Item 1 04 함수 호출의 원리 2 핵심개념 Jmp 를 사용한 함수 호출 - 돌아올 주소를 알려 주어야 한다. 레지스터를 통해서 돌아올 주소를 알려 주는 방식 스택을 통해서 돌아올 주소를 알려 주는 방식 call, ret 을 사용한 함수 호출 1. jmp 를 사용한 함수 호출 레지스터에 돌아올 주소를 담아서 전달 stack 에 돌아올 주소를 담아서 전달 _asm_main: mov jmp A: ret foo: ebx, A foo mov eax, 20 jmp ebx _asm_main: push A jmp foo A: ret foo: mov eax, 20 pop ebx jmp ebx 2. call / ret 를 사용한 함수 호출 Jmp 의 stack 버전 _asm_main: call ret foo: ret foo 10

12 Item 1 05 함수 인자 전달 방식 핵심개념 레지스터를 통한 인자 전달 ECX, EDX 레지스터 사용 스택을 통한 인자 전달 인자 전달용 스택을 파괴해야 한다. 호출 자(Caller)가 파괴 하는 방식 피호출자(Callee)가 파괴 하는 방식 레지스터 vs 스택 의 장단점 1. 레지스터를 사용한 인자 전달 방식 ECX, EDX 레지스터를 사용해서 인자 전달 속도는 빠르지만 인자 개수에 제한이 있다. _asm_main: mov edx, 20 mov ecx, 10 call ret foo foo: mov eax, ecx ; eax = ecx add eax, edx ; eax += edx ret 11

13 2. Stack 을 사용한 인자 전달 방식 ESP 레지스터에 가장 최근에 사용한 스택의 주소에 있음. 왜 Runtime Error 가 발생하는가? Stack 구조가 중요 _asm_main: push 20 push 10 call foo ret main() stack main() 으로 돌아갈 주소 foo: mov add ret eax, dword[esp+4] eax, dword[esp+8] _asm_main() stack _asm_main() 으로 돌아갈 주소 ESP foo() stack stack 인자 전달에 사용한 stack 은 반드시 파괴 되어야 한다. 3. 인자 전달용 Stack 의 파괴 호출자(caller) 파괴 방식 피호출자(callee) 파괴 방식 _asm_main: push 20 push 10 call foo foo: sub esp, 8 ret mov add ret eax, dword[esp+4] eax, dword[esp+8] _asm_main: push 20 push 10 call foo ret foo: mov add ret 8 eax, dword[esp+4] eax, dword[esp+8] 장점 : 단점 : 장점 : 단점 : 12

14 Item 1 06 Stack Frame 핵심개념 EBP 레지스터를 사용한 Stack 관리 dword ptr [ebp+8] : 함수의 1 번째 인자 dword ptr [ebp-4] : 함수의 1 번째 지역변수 지역 변수의 원리 함수 Prolog 와 Epilog 1. Stack Frame EBP 레지스터를 사용해서 함수 인자 및 지역변수에 접근한다. 함수 시작시 EBP 의 현재값을 보관했다가 함수 종료 직전에 복구 해 준다. 함수 안에서 Stack 사용시 ESP 는 변하지만 EBP 는 변하지 않는다. 고정된 offset 으로 함수 인자에 접근할 수 있다.(EBP+8, EBP+12) _asm_main: foo: push 20 push 10 call foo add esp, 8 ret push mov mov add pop ebp ebp, esp eax, dword[ebp+8] eax, dword[ebp+12] ebp main() stack _asm_main() stack foo() stack main() 으로 돌아갈 주소 _asm_main() 으로 돌아갈 주소 EBP 예전값 EBP ESP ret stack 13

15 2. 지역변수 사용하기 필요한 만큼의 stack 공간을 확보 : add esp, 필요한 지역변수 크기 EBP 레지스터를 사용해서 접근 : EBP 4 함수 호출 종료 시 지역변수가 사용하던 stack 은 파괴 되어야 한다 _asm_main: push 20 push 10 call foo add esp, 8 ret foo: push ebp mov ebp, esp sub esp, 8 ; int x, y mov dword[ebp-4], 1 ; x = 1 mov dword[ebp-8], 2 ; y = 2 mov add eax, dword[ebp+8] eax, dword[ebp+12] main() stack _asm_main() stack foo() stack main() 으로 돌아갈 주소 _asm_main() 으로 돌아갈 주소 EBP 예전값 EBP 1 x 2 y ESP mov pop ret esp, ebp ; 지역변수 파괴 ebp stack 3. Prolog / Epilog foo: ; Prolog push ebp mov ebp, esp sub esp, 8 ; Epilog mov esp, ebp pop ebp ret 14

16 Item 1 07 Coding High Level, Thinking Low Level 핵심개념 C 언어가 만드는 어셈블리 코드 예측하기 cl sample.c /FAs 로 어셈블리 소스 확인 하기 1. cl 컴파일러로 어셈블리 소스 확인 하기 /FAs 옵션을 사용해서 어셈블리 소스 확인 하기 cl sample.c /FAs notepad sample.asm int Add(int a, int b) int c = 0; c = a + b; return c; int main() int n = Add(1, 2); 2. cl 컴파일러 옵션 /FAs : 어셈블리 소스를 만들기 /Ob1 : 인라인 치환 적용 /O2 : 최적화 적용 /help : 도움말 15

17 Item 1 08 Calling Convention 핵심개념 Calling Convention 의 정확한 개념 어셈블리 언어에서의 C 함수를 호출 하는 방법 1. Calling Convention 함수 인자가 어디를 통해서 전달되는가? 인자 전달용 stack 은 누가 파괴하는가? 함수 이름은 어떻게 변경 되는가? Calling Convention Argument Passing Stack Maintenance Name Decoration Notes cdecl Stack Right -> Left 호출자(Caller) _함수이름() ex) _foo C/C++함수의 기본 호출규약 stdcall Sack Right -> Left 피호출자(Callee) _함수이름@인자크기 ex) _foo@12 Win32 API Visual Basic 2개까지는 ECX, EDX레지스터 fastcall 사용 나머지는 Stack Intel CPU Right -> Left This Stack Right -> Left this가 ecx레지스터로 전달 호출자(Caller) C++클래스 COM naked Stack Right -> Left 호출자(Caller) 드라이버 개발 Custom Epilog/Prolog 제작 16

18 2. 어셈블리 소스로 Calling Convention 확인 main2.c main2.asm #include <stdio.h> void f1(int a, int b) _main PROC push mov ebp ebp, esp void stdcall f2(int a, int b) void fastcall f3(int a, int b) void fastcall f4(int a, int b, int c) int main() f1(1, 2); f2(1, 2); f3(1, 2); f4(1, 2, 3); ; f1(1, 2) push 2 push 1 call _f1 add esp, 8 ; f2(1, 2) push 2 push 1 call _f2@8 ; f3(1, 2) mov edx, 2 mov ecx, 1 ; f4(1, 2, 3) push 3 mov edx, 2 mov ecx, 1 17

19 3. 어셈블리 소스에서 C 함수 호출하기 사용자 정의 함수 호출 C 표준 함수 호출 Win32 API 호출 #include <stdio.h> int asm_main(); int main() asm_main(); void cdecl f1(int a, int b) printf("f1 : %d, %d\n", a, b); void stdcall f2(int a, int b) printf("f2 : %d, %d\n", a, b); void fastcall f3(int a, int b) printf("f3 : %d, %d\n", a, b); void fastcall f4(int a, int b, int c) printf("f4 : %d, %d, %d\n", a, b, c); segment.data S1 DB "hello", 10, 0 ; "hello/n" segment.text global _asm_main extern _f1 extern _f2@8 extern _printf extern _MessageBoxA@16 _asm_main: ; f1(1,2) push 2 push 1 call _f1 add esp, 8 ; f2(1,2) push 2 push 1 call _f2@8 ; f3(1,2) mov edx, 2 mov ecx, 1 ; f4(1,2,3) push 3 mov edx, 2 mov ecx, 1 ; printf("hello\n") push S1 call _printf add esp, 4 ; MessageBoxA(0, S1, S1, MB_OK) push 0 push S1 push S1 push 0 call _MessageBoxA@16 ret 18

20 Item 1 09 반복문과 제어문 핵심개념 FLAG 레지스터 Loop 명령과 ECX 레지스터 1. 반복문 LOOP 명령과 ECX 레지스터 #include <stdio.h> int asm_main(); int main() int n = asm_main(); printf("결과 : %d\n", n); segment.text global _asm_main _asm_main: mov ecx, 10 mov eax, 0 AAA: add eax, ecx ; eax += ecx loop AAA ; if ( --ecx!= 0 ) ; goto AAA ret 2. LOOP OPCODE LOOP Loop With ECX counter LOOPZ/LOOPNZ Loop With ECX and zero ( not zero ) LOOPE/LOOPNE Loop With ECX and equal ( not equal ) 19

21 3. FLAG 레지스터 연산의 결과에 따라 각 비트가 set/reset 되는 레지스터 4. FLAG 레지스터와 조건부 JMP EFLAG 레지스터의 상태에 따라 조건부 JMP를 하는 OPCODE segment.text _asm_main: global _asm_main mov ecx, 10 mov eax, 0 AAA: mov ebx, ecx and ebx, 1 ; 의미는? jz BBB ; if ( ZF == 1 ) jmp BBB add eax, ecx ; eax += ecx BBB: loop AAA ; if ( --ecx!= 0 ) goto AAA ret 20

22 5. Conditional JMP OPCODE 조건에 따라 JMP를 수행하는 OPCODE JMP Jump JE/JNE Jump if equal (not equal ) JZ/JNZ Jump if zero ( not zero ) JA/JNA Jump if above ( not above ) JAE/JNAE Jump if above or equal ( not above or equal ) JB/JNB Jump if below ( not below) JBE/JNBE Jump if below or equal ( not below or equal ) JG/JNG Jump if greater ( not greater ) JGE/JNGE Jump if greater or equal ( not greater or equal ) JL/JNL Jump if less ( not less ) JLE/JNLE Jump if less or equal ( not less or equal ) JC/JNC Jump if carry ( not carry ) JO/JNO Jump if overflow ( not overflow ) JS/JNS Jump if sign ( not sign ) JPO/JPE Jump if parity odd ( even ) JP/JNP Jump if parity ( not parity ) JCXZ/JECXZ Jump if register CX zero ( ECX zero ) 21

23 Item 1 10 Reversing With OllyDbg 핵심개념 OllyDbg 사용법 Break Pointer when API call Code Memory, Data Memory, Stack, Register 1. CrackMe PEView 를 사용해서.data,.rdata 섹션 조사 OllyDbg 를 사용해서 Reversing 2. Using OllyDbg Breakpoints when API call Step 1. 툴바에서 E 버튼 클릭 22

24 Step 2. 실행파일을 선택하고 오른쪽 버튼 클릭, Show names 메뉴 선택 Step 3. GetWindowTextA 함수를 찾아서 오른쪽 버튼 클릭, Find Reference 메뉴 선택 Step 4. 함수 호출 구문에서 오른쪽 버튼 클릭, BreakPoint 메뉴 선택 Step 5. 빨간색으로 변경되었는지 확인 23

25 Item 1 11 Assembly 활용 핵심개념 인라인 어셈블리를 활용한 윈도우 구조체 접근 TEB, PEB 의 주소 얻어내기 GetLastError() 구현하기 현재 프로세스의 디버깅여부 알아내기 1. TEB(Thread Environment Block) 과 FS 레지스터 스레드당 1개의 구조체, FS 레지스터로 TEB의 주소관리 Position Length OS Versions Description FS:[0x00] 4 Win9x and NT Current Structured Exception Handling (SEH) frame FS:[0x04] 4 Win9x and NT Stack Base / Bottom of stack (high address) FS:[0x08] 4 Win9x and NT Stack Limit / Ceiling of stack (low address) FS:[0x0C] 4 NT SubSystemTib FS:[0x10] 4 NT Fiber data FS:[0x14] 4 Win9x and NT Arbitrary data slot FS:[0x18] 4 Win9x and NT Linear address of TIB ---- End of NT subsystem independent part ---- FS:[0x1C] 4 NT Environment Pointer FS:[0x20] 4 NT Process ID (in some windows distributions this field is used as 'DebugContext') FS:[0x24] 4 NT Current thread ID FS:[0x28] 4 NT Active RPC Handle FS:[0x2C] 4 Win9x and NT Linear address of the thread-local storage array FS:[0x30] 4 NT Linear address of Process Environment Block (PEB) FS:[0x34] 4 NT Last error number FS:[0x38] 4 NT Count of owned critical sections FS:[0x3C] 4 NT Address of CSR Client Thread FS:[0x40] 4 NT Win32 Thread Information FS:[0x44] 124 NT, Wine Win32 client information (NT), user32 private data (Wine), 0x60 = LastError (Win95), 0x74 = LastError (WinME) FS:[0xC0] 4 NT Reserved for Wow64. Contains a pointer to FastSysCall in Wow64. FS:[0xC4] 4 NT Current Locale 24

26 FS:[0xC8] 4 NT FP Software Status Register FS:[0xCC] 216 NT, Wine Reserved for OS (NT), kernel32 private data (Wine) herein: FS:[0x124] 4 NT Pointer to KTHREAD (ETHREAD) structure FS:[0x1A4] 4 NT Exception code FS:[0x1A8] 18 NT Activation context stack FS:[0x1BC] 24 NT, Wine Spare bytes (NT), ntdll private data (Wine) FS:[0x1D4] 40 NT, Wine Reserved for OS (NT), ntdll private data (Wine) FS:[0x1FC] 1248 NT, Wine GDI TEB Batch (OS), vm86 private data (Wine) FS:[0x6DC] 4 NT GDI Region FS:[0x6E0] 4 NT GDI Pen FS:[0x6E4] 4 NT GDI Brush FS:[0x6E8] 4 NT Real Process ID FS:[0x6EC] 4 NT Real Thread ID FS:[0x6F0] 4 NT GDI cached process handle FS:[0x6F4] 4 NT GDI client process ID (PID) FS:[0x6F8] 4 NT GDI client thread ID (TID) FS:[0x6FC] 4 NT GDI thread locale information FS:[0x700] 20 NT Reserved for user application FS:[0x714] 1248 NT Reserved for GL FS:[0xBF4] 4 NT Last Status Value FS:[0xBF8] 532 NT Static UNICODE_STRING buffer FS:[0xE0C] 4 NT Pointer to deallocation stack FS:[0xE10] 256 NT TLS slots, 4 byte per slot FS:[0xF10] 8 NT TLS links (LIST_ENTRY structure) FS:[0xF18] 4 NT VDM FS:[0xF1C] 4 NT Reserved for RPC FS:[0xF28] 4 NT Thread error mode (RtlSetThreadErrorMode) 2. TEB 와 PEB 의 주소 얻기 FS:[0x18], FS:[0x30] #include <stdio.h> #include <Windows.h> void* GetTEBAddr() void* pteb = 0; asm mov eax, dword ptr FS:[0x18] mov pteb, eax return pteb; void* GetPEBAddr() 25

27 void* ppeb = 0; asm mov eax, dword ptr FS : [0x30] mov ppeb, eax return ppeb; int main() printf("current Thread TEB Address : %p\n", GetTEBAddr()); printf("current Thread PEB Address : %p\n", GetPEBAddr()); 3. GetLastError() 원리 스레드당 한 개의 에러 코드 TEB 의 Offset 0x34. #include <stdio.h> #include <Windows.h> int MyGetLastError() int value = 0; asm mov eax, dword ptr FS : [0x34] mov value, eax return value; int main() HWND h = CreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (h == 0) printf("실패 : %d\n", GetLastError()); printf("실패 : %d\n", MyGetLastError()); 26

28 SECTION 02 Kernel Object Windows OS는 대부분의 구성요소를 구조체를 사용해서 관리하는 객체 기반 OS입니다. Windows OS가 만드는 객체는 크게 User Object, GDI Object, Kernel Object 로 구분 합니다. 이중 Kernel Object 는 시스템의 기능을 수행하는 객체로서 다양한 특징을 가지고 있습니다. 본 섹션에서는 Kernel Object의 다양한 특징을 이해하고 관련 기술을 학습합니다. 주요 내용 핸들의 개념을 이해하고 윈도우 핸들을 얻고 핸들을 사용해서 기존 윈도우의 다양한 속성을 변경하는 기법을 학습 합니다. User Object, GDI Object, Kernel Object 의 각각의 특징을 학습 합니다.. Kernel Object 를 관리하는 Object Table 을 학습 합니다. 두 개 이상의 Process 간에 Kernel Object 를 공유하는 3 가지 기술을 학습 합니다. 27

29 Item 2 01 Handle 과 Window 핵심개념 객체를 구별하는 32/64 비트 정수 핸들과 타입 안정성 SetWindowLong / GetWindowLong 을 사용한 Window Object 조작 1. Handle 의 개념 객체(윈도우, 펜, 브러시, 폰트등)를 구별하기 위한 고유한 번호 32/64 비트 정수 핸들을 알면 윈도우를 조작할 수 있다. Win32 API = 객체의 고유한 번호(핸들) + 핸들을 가지고 객체를 조작하는 함수 #include <Windows.h> #include <stdio.h> #include <conio.h> int main() HWND hwnd = FindWindowA(0, "계산기"); printf("계산기 윈도우 번호(핸들): %x\n", hwnd); _getch(); MoveWindow(hwnd, 0, 0, 300, 300, TRUE); _getch(); ShowWindow(hwnd, SW_HIDE); _getch(); ShowWindow(hwnd, SW_SHOW); _getch(); SetMenu(hwnd, 0); HRGN h = CreateEllipticRgn(0, 0, 300, 300); _getch(); SetWindowRgn(hwnd, 0, TRUE); 28

30 2. 핸들의 정체 구조체 포인터를 사용해서 서로 다른 종류의 핸들이 암시적 형 변환을 방지 타입 안정성을 고려한 설계 typedef void* HANDLE; struct HWND int unused;; struct HICON int unused;; typedef HWND *HWND; typedef HICON *HICON; typedef void* HANDLE; void MoveWindow(HWND hwnd, int x, int y, int w, int h) int main() HICON h = 0; MoveWindow(h, 0, 0, 0, 0); Windows.h 에서는 DECLARE_HANDLE( ) 매크로 사용 #define DECLARE_HANDLE(name) \ struct name## int unused;; typedef struct name## *name 3. Window Object 하나의 윈도우를 관리하기 위해 생성되는 객체 Windows 95 System Programing Secrets, matt pietrick typedef struct _WND32 struct _WND32 *hwndnext; // 00h (GW_HWNDNEXT) HWND of next sibling window struct _WND32 *hwndchild; // 04h (GW_CHILD) First child window struct _WND32 *hwndparent; // 08h Parent window handle struct _WND32 *hwndowner; // 0Ch Owning window handle RECTS rectwindow; // 10h Rectangle describing entire window RECTS rectclient; // 18h Rectangle for client area of window WORD hqueue; // 20h Application message queue handle WORD hrgnupdate; // 22h window region needing an update WORD wndclass; // 24h handle to an INTWNDCLASS WORD hinstance; // 26h hinstance of creating application WNDPROC lpfnwndproc; // 28h Window procedure address 29

31 DWORD dwflags; // 2Ch internal state flags DWORD dwstyleflags; // 30h WS_XXX style flags DWORD dwexstyleflags; // 34h WS_EX_XXX extended style flags DWORD moreflags; // 38h flags HANDLE ctrlid; // 3Ch GetDlgCtrlId or hmenu WORD windowtextoffset; // 40h Offset of the window's text in atom heap WORD scrollbar; // 42h DWORD associated with the scroll bars WORD properties; // 44h Handle for first window property WORD hwnd16; // 46h Actual HWND value for this window struct _WND32* lastactive; // 48h Last active owned popup window HANDLE hmenusystem; // 4Ch handle to the system menu DWORD un1; // 50h WORD un2; // 54h WORD classatom; // 56h See also offs. 2 in the field 24 struct ptr DWORD alternatepid; // 58h DWORD alternatetid; // 5Ch WND32, *PWND32; 4. SetWindowLong() / GetWindowLong() Window 구조체를 속성을 변경하는 함수 #include <Windows.h> #include <stdio.h> #include <conio.h> void ModifyStyle(HWND hwnd, UINT remove, UINT add) int style = GetWindowLong(hwnd, GWL_STYLE); style = style add; style = style & ~remove; SetWindowLong(hwnd, GWL_STYLE, style); SetWindowPos(hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE SWP_NOSIZE SWP_NOZORDER SWP_DRAWFRAME); int main() HWND hwnd = FindWindowA(0, "계산기"); _getch(); ModifyStyle(hwnd, WS_CAPTION, WS_THICKFRAME); _getch(); ModifyStyle(hwnd, WS_THICKFRAME, WS_CAPTION); 30

32 Item 2 02 Object Category 핵심개념 Object 의 3 가지 종류 와 특징 User Object, GDI Object, Kernel Object Kernel Object 의 특징 1. 프로세스간 핸들 공유 Window, Pen, File 핸들의 공유 문제 31

33 2. Object Category Windows OS가 만드는 Object 의 3가지 종류 User Object GDI Object Kernel Object 특징 윈도우와 관련된 Object. 그래픽 관련된 Object. 파일, 메모리, 프로세스, IPC 등과 같은 작업에 관련된 Object. 핸들의 특징 Public to All Process Private 상대적(Specific) 핸들 파괴함수 DestroyXXX() DeleteXXX() CloseHandle() 참조계수 감소 관련 DLL User32.dll GDI32.dll Kernel32.dll Accelerator table, Caret, Bitmap, Brush, DC, Access token, Change notification, Cursor, DDE Enhanced metafile, Communications, device, Console input, conversation, Hook, Enhanced-metafile DC, Console screen buffer, Desktop, Icon, Menu, Window, Font, Memory DC, Event,Event log, File, File mapping, 종류 Window position Metafile, Metafile DC, Heap, Job, Mailslot, Module, Mutex, Palette, Pen and Pipe, Process, Semaphore, Socket, extended pen, Region Thread, Timer, Timer queue, Timerqueue timer, Update resource, Window station 3. Kernel Object 특징 보안속성, 이름, 참조계수, Signal, WaitList 보안속성 이름 참조계수 Signal Wait List 32

34 Item 2 03 Kernel Object Handle Table 핵심개념 EPROCESS 와 Object Table Process Explorer Object Table 조사 하기 Native API 를 사용해서 Object Table 열거 하기 1. Process s Object Table 프로세스가 사용하는 Kernel Object 의 핸들을 관리 하는 Table User Object 와 GDI Object 는 포함되지 않는다. 33

35 2. Process Explorer Utility #include <Windows.h> #include <stdio.h> #include <conio.h> int main() _getch(); HANDLE hevent = CreateEventA( 0, 0, 0, "MYEVENT"); printf("event 핸들 : %x\n", hevent); _getch(); HANDLE hmutex = CreateMutexA( 0, 0, "MYMUTEX"); printf("mutex 핸들: %x\n", hmutex); _getch(); HANDLE hsemaphore = CreateSemaphoreA( 0, 0, 3, "MYSEMAPHORE"); printf("semaphore 핸들: %x\n", hsemaphore); _getch(); CloseHandle( hevent); _getch(); CloseHandle( hmutex); _getch(); CloseHandle( hsemaphore); 34

36 3. Native API 를 사용한 Object Handle Table 열거 하기 ZwQuerySystemInformation를 사용한 Process Object Table 열거 #include <stdio.h> #include <Windows.h> #include <conio.h> #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC L) typedef enum _SYSTEM_INFORMATION_CLASS SystemBasicInformation, // 0 SystemProcessorInformation, // 1 SystemPerformanceInformation, // 2 SystemTimeOfDayInformation, // 3 SystemNotImplemented1, // 4 SystemProcessesAndThreadsInformation, // 5 SystemCallCounts, // 6 SystemConfigurationInformation, // 7 SystemProcessorTimes, // 8 SystemGlobalFlag, // 9 SystemNotImplemented2, // 10 SystemModuleInformation, // 11 SystemLockInformation, // 12 SystemNotImplemented3, // 13 SystemNotImplemented4, // 14 SystemNotImplemented5, // 15 SystemHandleInformation, // 16 SystemObjectInformation, // 17 SystemPagefileInformation, // 18 SystemInstructionEmulationCounts, // 19 SystemInvalidInfoClass1, // 20 SystemCacheInformation, // 21 SystemPoolTagInformation, // 22 SystemProcessorStatistics, // 23 SystemDpcInformation, // 24 SystemNotImplemented6, // 25 SystemLoadImage, // 26 SystemUnloadImage, // 27 SystemTimeAdjustment, // 28 SystemNotImplemented7, // 29 SystemNotImplemented8, // 30 SystemNotImplemented9, // 31 SystemCrashDumpInformation, // 32 SystemExceptionInformation, // 33 SystemCrashDumpStateInformation, // 34 SystemKernelDebuggerInformation, // 35 SystemContextSwitchInformation, // 36 SystemRegistryQuotaInformation, // 37 SystemLoadAndCallImage, // 38 SystemPrioritySeparation, // 39 SystemNotImplemented10, // 40 SystemNotImplemented11, // 41 SystemInvalidInfoClass2, // 42 SystemInvalidInfoClass3, // 43 SystemTimeZoneInformation, // 44 SystemLookasideInformation, // 45 SystemSetTimeSlipEvent, // 46 35

37 SystemCreateSession, // 47 SystemDeleteSession, // 48 SystemInvalidInfoClass4, // 49 SystemRangeStartInformation, // 50 SystemVerifierInformation, // 51 SystemAddVerifier, // 52 SystemSessionProcessesInformation // 53 SYSTEM_INFORMATION_CLASS; typedef struct _SYSTEM_HANDLE_INFORMATION ULONG ProcessId; UCHAR ObjectTypeNumber; UCHAR Flags; USHORT Handle; PVOID Object; ACCESS_MASK GrantedAccess; SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; typedef NTSTATUS ( stdcall *F)(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG); F ZwQuerySystemInformation = 0; int main() HMODULE hdll = GetModuleHandleA("Ntdll.dll"); ZwQuerySystemInformation = (F)GetProcAddress(hDll, "ZwQuerySystemInformation"); int sz = sizeof(system_handle_information); int count = 30000; void* buff = malloc(sz * count + 4); DWORD len; DWORD ret = ZwQuerySystemInformation(SystemHandleInformation, buff, sz * count + 4, &len); if (ret == STATUS_INFO_LENGTH_MISMATCH) printf("버퍼가 작습니다..\n"); int n = *(int*)buff; printf("핸들 테이블 항목 개수 : %d\n", n); SYSTEM_HANDLE_INFORMATION* phandle = (SYSTEM_HANDLE_INFORMATION*)((char*)buff + 4); for (int i = 0; i < n; i++) printf("pid : %d, HANDLE : %x, TYPE : %d\n", phandle[i].processid, phandle[i].handle, phandle[i].objecttypenumber); 36

38 Item 2 04 프로세스간 Kernel Object 공유 1 DuplicateHandle 핵심개념 프로세스간 Kernel Object Handle 을 복사하는 방법 DuplicateHandle() 함수 사용법 1. 프로세스간 Kernel Object Handle 의 핸들 복사 개념 37

39 2. DuplicateHandle()을 사용한 Object Handle 복사 예제 A Process #include <stdio.h> #include <windows.h> #include <conio.h> int main() HANDLE hfile = CreateFileA("a.txt", GENERIC_READ GENERIC_WRITE, FILE_SHARE_READ FILE_SHARE_WRITE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); printf("file Handle : %x\n", hfile); _getch(); HWND hwnd = FindWindow(0, "B"); DWORD pid; DWORD tid = GetWindowThreadProcessId(hwnd, &pid); HANDLE hprocess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid); HANDLE h2; DuplicateHandle(GetCurrentProcess(), hfile, hprocess, &h2, 0, 0, DUPLICATE_SAME_ACCESS); printf("b 프로세스에 복사해준 핸들(table index) : %x\n", h2); _getch(); SendMessage(hwnd, WM_APP + 100, 0, (LPARAM)h2); B Process GUI Application case WM_APP + 100: HANDLE hfile = (HANDLE)lParam; char s[256] = "hello"; DWORD len; BOOL b = WriteFile(hFile, s, 256, &len, 0); MessageBoxA( 0, b? "성공":"실패", "", 0); return 0; 38

40 Item 2 05 프로세스간 Kernel Object 공유 2 Named Object 핵심개념 CreateXXX() 함수와 OpenXXX() 함수의 차이점 ERROR_ALREADY_EXISTS Kernel Object 에 상관없이 같은 이름 공간을 사용 1. 실행파일의 구조 동일한 이름의 Kernel Object 는 하나 이상 만들 수 없다. 해당 이름의 Kernel Object 가 이미 존재 할 경우 Open 2번 이상 실행 #include <Windows.h> #include <stdio.h> #include <conio.h> int main() HANDLE hevent = CreateEventA( 0, 0, 0, "MYEVENT"); if ( GetLastError() == ERROR_ALREADY_EXISTS ) printf("open Event Handle\n"); else printf("create Event\n"); _getch(); 39

41 2. Create vs Open Create : 해당 이름의 객체가 없으면 생성, 이미 존재하면 오픈 Open : 해당 이름의 객체가 없으면 실패, 이미 존재하면 오픈 Kernel Object 의 종류가 달라도 같은 이름을 사용하면 안된다. HANDLE h1 = OpenEventA( EVENT_ALL_ACCESS, 0, "MYEVENT"); HANDLE h2 = CreateEventA( 0, 0, 0, "MYEVENT"); HANDLE h2 = CreateEventA( 0, 0, 0, "MYEVENT"); HANDLE h3 = OpenEventA( EVENT_ALL_ACCESS, 0, "MYEVENT"); HANDLE h4 = CreateMutexA(0, 0, "MYEVENT"); // Fail // success! Create // success! but Open // success! Open // fail 40

42 Item 2 06 프로세스간 Kernel Object 공유 3 Inherit Kernel Object 핵심개념 커널 오브젝트 상속의 개념 상속 가능한 커널 오브젝트를 만드는 2 가지 방법 객체 생성시 SECURITY_ATTRIBUTES 구조체 사용 객체 생성후 SetHandleInformation() 함수 사용 파이프를 사용한 자식 프로세스의 출력을 Redirect 하는 방법 Console Application 의 출력을 윈도우 창으로 보내는 방법 ZwQueryObject() 함수를 사용해서 Kernel Object 의 상속여부 알아내기 1. Kernel Object 상속의 개념 부모 프로세스가 사용하던 커널 오브젝트를 자식 프로세스에게 상속 할 수 있다. CreateProcess()의 5 번째 파라미터를 TRUE 로 전달한다. 상속가능한 커널 오브젝트만 상속할 수 있다 41

43 2. 상속 가능한 Kernel Object 를 만드는 2 가지 방법 1. 보안 속성을 지정하는 구조체인 SECURITY_ATTRIBUTES 의 binherit 항목을 TRUE 로 설정한 후 Kernel Object 를 생성한다 SECURITY_ATTRIBUTES sa; sa.nlength = sizeof(sa); sa.binherithandle = TRUE; sa.lpsecuritydescriptor = 0; HANDLE hfile = CreateFile(_T("a.txt"), GENERIC_WRITE GENERIC_READ, 0, FILE_SHARE_READ FILE_SHARE_WRITE, &sa, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 2. 이미 생성된 Kernel Object 에 SetHandleInformation() 함수로 상속가능 여부를 지정한다. HANDLE hfile = CreateFile(_T("a.txt"), GENERIC_WRITE GENERIC_READ, FILE_SHARE_READ FILE_SHARE_WRITE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); SetHandleInformation(hFile, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT); 3. Redirect Child Process s stdout Console Application 의 출력을 Window에 출력하는 기술 42

44 익명의 파이프를 사용해서 자식 프로세스의 출력을 부모 프로세스에 연결한다. 파이프의 쓰기 핸들을 자식 프로세스에 상속 한다. 부모에서는 파이프의 쓰기 핸들을 반드시 닫아야 한다. void ExecutePing( const TCHAR* url, HWND hedit) TCHAR cmd[256] = _T("ping.exe "); _tcscat(cmd, url); HANDLE hreadpipe, hwritepipe; CreatePipe(&hReadPipe, &hwritepipe, 0, 1024); SetHandleInformation(hWritePipe, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT); PROCESS_INFORMATION pi = 0; STARTUPINFO si = sizeof(si) ; si.hstdoutput = hwritepipe; si.dwflags = STARTF_USESTDHANDLES; BOOL bret = CreateProcess(0, cmd, 0, 0, TRUE, CREATE_NO_WINDOW, 0, 0, &si, &pi); if (bret) CloseHandle(hWritePipe); while (1) char buffer[1024] = 0 ; DWORD len; ReadFile(hReadPipe, buffer, 1024, &len, 0); if (len <= 0) break; SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM)buffer); CloseHandle(hReadPipe); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); 4. Kernel Object 의 상속 가능여부 조사하기 Native API 인 ZwQueryObject()를 사용하면 Kernel Object의 상속여부를 조사할 수 있다. #include <Windows.h> #include <tchar.h> #include <stdio.h> 43

45 typedef enum _OBJECT_INFORMATION_CLASS ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation, ObjectAllTypesInformation, ObjectHandleInformation OBJECT_INFORMATION_CLASS; typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION BOOLEAN Inherit; BOOLEAN ProtectFromClose; OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION; typedef NTSTATUS ( stdcall *PFZwQueryObject) (HANDLE,OBJECT_INFORMATION_CLASS,PVOID,ULONG, PULONG ); int main() PFZwQueryObject ZwQueryObject = (PFZwQueryObject) GetProcAddress( GetModuleHandle(_T("Ntdll.dll")), "ZwQueryObject"); ULONG len; OBJECT_HANDLE_ATTRIBUTE_INFORMATION ohai = 0; HANDLE hevent = CreateEvent( 0, 0, 0, 0 ); SetHandleInformation( hevent, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT); ZwQueryObject(hEvent, ObjectHandleInformation, &ohai, sizeof(ohai), &len); printf("inheritable : %d\n", ohai.inherit); SetHandleInformation( hevent, HANDLE_FLAG_INHERIT, 0); ZwQueryObject(hEvent, ObjectHandleInformation, &ohai, sizeof(ohai), &len); printf("inheritable : %d\n", ohai.inherit); 44

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Deok9_PE Structure

Deok9_PE Structure PE Structure CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 1. PE > 1) PE? 2) PE 3) PE Utility

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

IDA 5.x Manual 07.02.hwp

IDA 5.x Manual 07.02.hwp IDA 5.x Manual - Manual 01 - 영리를 목적으로 한 곳에서 배포금지 Last Update 2007. 02 이강석 / certlab@gmail.com 어셈블리어 개발자 그룹 :: 어셈러브 http://www.asmlove.co.kr - 1 - IDA Pro 는 Disassembler 프로그램입니다. 기계어로 되어있는 실행파일을 어셈블리언어

More information

No Slide Title

No Slide Title Copyright, 2017 Multimedia Lab., UOS 시스템프로그래밍 (Assembly Code and Calling Convention) Seong Jong Choi chois@uos.ac.kr Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea

More information

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co Basic reverse engineering on x86 This is for those who want to learn about basic reverse engineering on x86 (Feel free to use this, email me if you need a keynote version.) v0.1 SeungJin Beist Lee beist@grayhash.com

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

hlogin7

hlogin7 0x07. Return Oriented Programming ROP? , (DEP, ASLR). ROP (Return Oriented Programming) (excutable memory) rop. plt, got got overwrite RTL RTL Chain DEP, ASLR gadget Basic knowledge plt, got call function

More information

5.스택(강의자료).key

5.스택(강의자료).key CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

1장 윈도우 프로그래밍 들어가기

1장 윈도우 프로그래밍 들어가기 1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

The_IDA_Pro_Book

The_IDA_Pro_Book The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

Microsoft PowerPoint - a8a.ppt [호환 모드]

Microsoft PowerPoint - a8a.ppt [호환 모드] 이장의내용 8 장고급프로시저 스택프레임 재귀 (Recursion) Invoke, Addr, Proc, Proto 디렉티브 다중모듈프로그램작성 2 8.2 스택프레임 Stack Frame ( 또는 activation record) procedure 의다음사항을저장한 영역 urn address passed parameter ( 스택매개변수 ) saved register

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

Chap06(Interprocess Communication).PDF

Chap06(Interprocess Communication).PDF Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F494454486F6F6B696E672E687770>

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F494454486F6F6B696E672E687770> IDT Hooking을 이용한 Simple KeyLogger 이동수 alonglog@is119.jnu.ac.kr 개 요 커널 Hooking에 관하여 공부하는 중에 IDT Hooking에 관하여 알게 되었다. 이전에 공부하 였던 SSDT Hooking과는 다른 요소가 많다. IDT Hooking을 공부하면서 컴퓨터의 인터럽트 과정을 이해할 수 있는 좋은 계기가

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

PRO1_09E [읽기 전용]

PRO1_09E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

=

= written by vangelis(vangelis@wowhacker.org) 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 110112 + 100012 = 1011002 110 0000 0101

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

Microsoft PowerPoint - a6.ppt [호환 모드]

Microsoft PowerPoint - a6.ppt [호환 모드] 이장의내용 6 장조건부처리 부울과비교명령어 조건부점프 조건부루프명령어 조건부구조 컴퓨터정보통신 어셈블리언어 2 6.2 부울과비교명령어 부울명령어 Instructions ti 동작 AND dst, src OR dst, src XOR dst, src NOT dst dst dst AND src dst dst OR src dst dst XOR src dst NOT

More information

제목

제목 Development Technology Seminar 작 성 자 : 고형호 이 메 일 : hyungho.ko@gmail.com 최초작성일 : 2007.01.19 최종작성일 : 2007.02.05 버 전 : 01.05 홈 피 : www.innosigma.com Goal Exception Handling 1. SEH vs. CEH Exception Handling

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

Microsoft PowerPoint - a5a.ppt [호환 모드]

Microsoft PowerPoint - a5a.ppt [호환 모드] 5 장프로시저 (1) 책의라이브러리사용 5 장전반부 : 책의링크라이브러리 외부링크라이브러리개요 라이브러리프로시저호출 라이브러리링크 라이브러리프로시저 예제 연세대학교컴퓨터정보통신어셈블리언어 2 저자제공링크라이브러리 라이브러리파일 어셈블된프로시저를포함하고있는 OBJ 파일들을모아놓은파일 ( 확장자.LIB) 각 OBJ file 에는하나이상의 procedure 가들어있음

More information

Microsoft Word - Heap_Spray.doc

Microsoft Word - Heap_Spray.doc Heap Spray 본문서는 최근 웹 브라우저를 이용한 공격에 사용되는 Heap Spray 기법에 대한 내용을 수록하였다. 관련 내용에 대하여 많은 도움이 되기 바란다. 문서 내용은 초보자도 쉽게 이해할 수 있도록 관련 내용에 대한 설명을 포함하였다. Hacking Group OVERTIME force< forceteam01@gmail.com > 2007.05.13

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

C++-¿Ïº®Çؼ³10Àå

C++-¿Ïº®Çؼ³10Àå C C++. (preprocessor directives), C C++ C/C++... C++, C. C++ C. C C++. C,, C++, C++., C++.,.. #define #elif #else #error #if #itdef #ifndef #include #line #pragma #undef #.,.,. #include #include

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

chapter4

chapter4 Basic Netw rk 1. ก ก ก 2. 3. ก ก 4. ก 2 1. 2. 3. 4. ก 5. ก 6. ก ก 7. ก 3 ก ก ก ก (Mainframe) ก ก ก ก (Terminal) ก ก ก ก ก ก ก ก 4 ก (Dumb Terminal) ก ก ก ก Mainframe ก CPU ก ก ก ก 5 ก ก ก ก ก ก ก ก ก ก

More information

chap01_time_complexity.key

chap01_time_complexity.key 1 : (resource),,, 2 (time complexity),,, (worst-case analysis) (average-case analysis) 3 (Asymptotic) n growth rate Θ-, Ο- ( ) 4 : n data, n/2. int sample( int data[], int n ) { int k = n/2 ; return data[k]

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾ P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

MPLAB C18 C

MPLAB C18 C MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

11강-힙정렬.ppt

11강-힙정렬.ppt 11 (Heap ort) leejaku@shinbiro.com Topics? Heap Heap Opeations UpHeap/Insert, DownHeap/Extract Binary Tree / Index Heap ort Heap ort 11.1 (Priority Queue) Operations ? Priority Queue? Priority Queue tack

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

초보자를 위한 C++

초보자를 위한 C++ C++. 24,,,,, C++ C++.,..,., ( ). /. ( 4 ) ( ).. C++., C++ C++. C++., 24 C++. C? C++ C C, C++ (Stroustrup) C++, C C++. C. C 24.,. C. C+ +?. X C++.. COBOL COBOL COBOL., C++. Java C# C++, C++. C++. Java C#

More information

Microsoft Word - ExecutionStack

Microsoft Word - ExecutionStack Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

휠세미나3 ver0.4

휠세미나3 ver0.4 andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

02(243-249) CSTV11-22.hwp

02(243-249) CSTV11-22.hwp 함수호출규약에 기반한 새로운 소프트웨어 워터마킹 기법 243 함수호출규약에 기반한 새로운 소프트웨어 워터마킹 기법 (A Novel Software Watermarking Scheme Based on Calling Convention) 전 철 정진만 김봉재 (Cheol Jeon) (Jinman Jung) (Bongjae Kim) 장준혁 조유근 홍지만 (Joonhyouk

More information

chap10.PDF

chap10.PDF 10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

More information

Microsoft Word - ASG AT90CAN128 모듈.doc

Microsoft Word - ASG AT90CAN128 모듈.doc ASG AT90128 Project 3 rd Team Author Cho Chang yeon Date 2006-07-31 Contents 1 Introduction... 3 2 Schematic Revision... 4 3 Library... 5 3.1 1: 1 Communication... 5 iprinceps - 2-2006/07/31

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float Part 2 31 32 33 106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float f[size]; /* 10 /* c 10 /* f 20 3 1

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

歯처리.PDF

歯처리.PDF E06 (Exception) 1 (Report) : { $I- } { I/O } Assign(InFile, InputName); Reset(InFile); { $I+ } { I/O } if IOResult 0 then { }; (Exception) 2 2 (Settling State) Post OnValidate BeforePost Post Settling

More information

Embeddedsystem(8).PDF

Embeddedsystem(8).PDF insmod init_module() register_blkdev() blk_init_queue() blk_dev[] request() default queue blkdevs[] block_device_ops rmmod cleanup_module() unregister_blkdev() blk_cleanup_queue() static struct { const

More information

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp 2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상

More information

호랑이 턱걸이 바위

호랑이 턱걸이 바위 호랑이 턱걸이 바위 임공이산 소개글 반성문 거울 앞에 마주앉은 중늙은이가 힐책한다 허송해버린 시간들을 어찌 할거나 반성하라 한발자국도 전진 못하고 제자리걸음만 일삼는 자신이 부끄럽지 않느냐 고인물은 썩나니 발전은 커녕 현상유지에도 급급한 못난위인이여 한심하다 한심하다 호랑이 턱걸이 바위! 이처럼 기막힌 이름을 붙이신 옛 선조들의 해학에 감탄하며 절로 고개가

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

슬라이드 1

슬라이드 1 사용 전에 사용자 주의 사항을 반드시 읽고 정확하게 지켜주시기 바랍니다. 사용설명서의 구성품 형상과 색상은 실제와 다를 수 있습니다. 사용설명서의 내용은 제품의 소프트웨어 버전이나 통신 사업자의 사정에 따라 다를 수 있습니다. 본 사용설명서는 저작권법에 의해 보호를 받고 있습니다. 본 사용설명서는 주식회사 블루버드소프트에서 제작한 것으로 편집 오류, 정보 누락

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

More information

04_오픈지엘API.key

04_오픈지엘API.key 4. API. API. API..,.. 1 ,, ISO/IEC JTC1/SC24, Working Group ISO " (Architecture) " (API, Application Program Interface) " (Metafile and Interface) " (Language Binding) " (Validation Testing and Registration)"

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

슬라이드 1

슬라이드 1 파일 I/O 와디렉터리컨트롤 1 목차 기본적인파일처리 파일검색 파일열기 & 닫기 파일읽기 & 쓰기 삭제, 복사, 이동 (?) 파일의시간정보얻기 파일특성정보얻기 파일포인터 directory 생성 & 삭제 경로설정 경로얻기 2 파일생성 / 열기 HANDLE CreateFile ( LPCTSTR lpfilename, DWORD dwdesiredaccess, 파일이름

More information

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph 인터그래프코리아(주)뉴스레터 통권 제76회 비매품 News Letters Information Systems for the plant Lifecycle Proccess Power & Marine Intergraph 2008 Contents Intergraph 2008 SmartPlant Materials Customer Status 인터그래프(주) 파트너사

More information

1.hwp

1.hwp 윈도우 멀티미디어 취약점 분석 방법론 연구 수탁기관 : 한양대학교 산학협력단 2009. 09 25,000 2008 2009(1~8월 ) 20,000 15,000 11,818 10,000 5,000-11,362 3,344 2,756 603 173 2-366 165 1 1 기업 대학 비영리 연구소 네트워크 기타(개인)

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

SIGPLwinterschool2012

SIGPLwinterschool2012 1994 1992 2001 2008 2002 Semantics Engineering with PLT Redex Matthias Felleisen, Robert Bruce Findler and Matthew Flatt 2009 Text David A. Schmidt EXPRESSION E ::= N ( E1 O E2 ) OPERATOR O ::=

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information