목차
저자의 글 = ⅲ
저자 약력 = ⅳ
Chapter 01 리버스엔지니어링에 대하여
1.1 리버스엔지니어링이란 무엇인가? = 1
1.2 크래커에 의한 피해 사례, 개발자들이 주의할 부분 = 4
1.3 리버스엔지니어링의 전망과 취업 = 8
1.4 리버스엔지니어링 관련 법률 = 9
1.5 라이선스 정책에 대한 정리 = 14
Chapter 02 리버스엔지니어링을 위한 기초 지식
2.1 올리디버거(OllyDBG) 설정 및 사용법 = 20
2.2 Jump구 문제어 문제 풀이 = 35
2.3 CPU 레지스터와 어셈블리 언어, 진수 변환 = 46
2.3.1 진수 변환 = 46
2.3.2 CPU 레지스터 = 47
2.3.3 어셈블리 언어 = 51
2.3.4 상황별 어셈블리 명령어 = 66
2.4 WinApi 분석을 통한 문제풀이 = 70
2.5 매뉴얼 Unpack과 Back To User 모드 = 80
2.6 키젠(KeygenMe) 문제 풀이를 통한 스택과 콜링컨벤션의 이해 = 91
2.7 KeyFile 체크 문제 풀이와 바이너리 수정 = 106
2.8 nag 제거 문제를 통한 PE 구조의 이해 = 112
Chapter 03 리버스엔지니어링 관련 툴
3.1 툴 사용하기 = 143
3.2 시스템 모니터링 툴 = 144
3.2.1 Filemon = 145
3.2.2 Regmon = 149
3.2.3 TcpView = 150
3.2.4 Procexp = 151
3.3 디스어셈블러 = 154
3.3.1 IDA 설치 = 156
3.3.2 메뉴 구성과 IDA 사용 방법 = 161
3.3.3 디버깅 = 181
3.4 IDA에서 for문 분석하기 = 191
3.5 IDA에서 if문 분석하기 = 196
3.6 크로스레퍼런스 기능과 지뢰찾기 분석 = 199
3.7 디컴파일러 = 204
3.7.1 플래쉬 디컴파일러(sothink SWF Decompiler) = 205
3.7.2 닷넷 프로그램 디컴파일러(Reflector) = 206
3.7.3 델파이 디컴파일러(DeDe) = 206
3.7.4 자바 디컴파일러(JAD) = 210
3.8 메모리 패치 = 211
3.8.1 티서치 = 211
3.8.2 치트엔진 = 216
3.9 바이너리 분석 = 229
3.9.1 PEiD = 229
3.9.2 리소스해커 = 233
3.9.3 Strings = 235
3.9.4 Dependency Walker와 DumpBin = 238
3.10 언패커 = 247
3.10.1 Universal Extractor = 248
3.10.2 VMUnpacker = 250
3.11 리빌더 = 254
3.12 헥스에디터 = 267
3.13 루트킷 탐지 = 271
3.13.1 GMER = 274
3.13.2 IceSword = 279
3.14 네트워크 모니터링 툴 = 283
3.15 가상 머신 = 293
3.15.1 VMWare = 296
3.15.2 VirtualBox = 308
Chapter 04 악성 코드 분석
4.1 악성 코드란? = 319
4.1.1 파일 바이러스 = 323
4.1.2 웜 = 325
4.1.3 트로이목마 = 325
4.1.4 백도어 = 326
4.1.5 스파이웨어 = 327
4.2 악성 코드 감염 경로 = 328
4.2.1 메신저에서의 파일 전송 = 329
4.2.2 이메일에서의 파일 다운 = 330
4.2.3 의심스러운 사이트에서의 ActiveX 설치 = 331
4.2.4 P2P 사이트에서의 파일 다운 = 331
4.2.5 인터넷에서 감염된 파일 다운 = 332
4.3 악성 코드 분석(IRC Bot) = 333
Chapter 05 안티 디버깅
5.1 안티 디버깅이란? = 343
5.2 안티 디버깅의 종류 = 344
5.3 IsDebuggerPresent = 345
5.4 Microsoft Visual Studio 2005에서 컴파일 및 실행 = 346
5.5 Microsoft Visual Studio 6.0에서 컴파일 및 실행 = 349
5.6 IsDebuggerPresent 우회 방법 = 357
5.7 IsDebugged = 363
5.8 IsDebugged 우회 방법 = 369
5.9 NtGlobalFlags = 371
5.10 NtGlobalFlags 우회 방법 = 377
5.11 CheckRemoteDebuggerPresent = 378
5.12 CheckRemoteDebuggerPresent 우회 방법 = 382
5.13 FindWindow = 384
5.14 FindWindow 우회 방법 = 390
찾아보기 = 394