Windows의 깊이 있는 이해와 다양한 디버깅 기술

윈도우 시스템 프로그래밍

수강대상

윈도우 환경에서 응용프로그램 개발자
윈도우 시스템의 구조에 관심있는 개발자

선수과정

기초 C 프로그래밍
기본 자료구조

강의환경

Visual C++ 2015 Express

◼︎PE Format, 어셈블리 등을 통해서 실행파일의 기본 구조와 프로세스의 기본 형태에 대해 자세히 배우게 됩니다.

◼︎Win32 API를 사용한 기본적인 운영체제 서비스(프로세스, 스레드, 메모리, DLL)를 배우게 됩니다.

◼︎ntdll.dll에 포함된 Native API 사용법을 배우고 win32 API로 불가능한 다양한 기능을 수행하는 방법을 배우게 됩니다.

◼︎Message Hooking, API Hooking, Dll Injection 등 다양한 후킹 기술을 배우게 됩니다.

◼︎Message Queue의 구조와 내부 동작 방식에 대해서 깊이 있게 배우게 됩니다.

  • Section1. Introduction
    • Error Handling
    • Unicode
    • PE Format, Virtual Memory, Virtual Address
  • Section2. 어셈블리언어와 Call Stack
    • Calling Convention
    • Stack Frame
    • Call Stack
  • Section3. Kernel Object
    • HWND 개념, 윈도우 객체, Set/GetWindowLong
    • User Object, GDI Object, Kernel Object
    • Kernel Object 특징, Example
  • Section4. Process
    • EPROCESS, PEB, Environment Variable, Error Mode
    • CreateProcess, Exit Code, TerminateProcess, WaitForSingleObject
    • Process ID, Process Enumeration
    • Module Enumeration, Privileges, Process Excution Times
    • Inherit Kernel Object
  • Section5. Thread 와 동기화
    • Thread 개념, Thread 생성, Thread State
    • Sample, Suspend/Resume Thread, Priority
    • Thread Argument
    • Thread Termination, Wait Other Thread
    • Critical Section
    • Mutex
    • Semaphore
    • Event
    • Thread Local Storage, Atomic Operation
    • Thread Model
  • Section6. File
    • CreateFile, Read, Write, File Operation Function
    • File Enumeration, File Change Notification
    • Async IO
  • Section7. Memory
    • Memory Basic, 4G Process Space, COW, Shared Memory
    • VirtualAlloc, VirtualFree, Virtual Query
    • Memory Mapped File
    • Heap, Stack
  • Section8. DLL
    • Static Link Library
    • Dynamic Link Library, Implicit Linking
    • Explicit Linking, Dumpbin.exe, Depends.exe
    • DllMain, Rebasing, Delay-load DLL
  • Section9. IPC
    • User Define Message, WM_COPYDATA
    • MMF, Shared Memory, Clipboard
    • named pipe, pipe, mailslot
  • Section10. Hooking
    • DLL Injection
    • Message Hooking
    • API Hooking
  • Section11. Exception
    • SEH(Structured Exception Handling)
    • STH(Structured Termination Handling)
  • Section12. Service
    • Service 개요, Service 프로그램의 구조
    • Service Programming
    • Service 설치, Service 제어