






[한국어판 특별 부록 수록]실전 예제와 함께 순서대로 경험하고 익히는 리버스 엔지니어링 소프트웨어 리버스 엔지니어링은 주로 소스코드가 없는 환경에서 타깃 프로그램을 분석할 때 사용된다. 리버스 엔지니어링 도구 기드라(Ghidra)는 디컴파일러 이외에도 다양한 아키텍처나 실행 파일 등을 제공하여 악성 프로그램 분석, 펌웨어 분석, 취약점 진단 등 다양한 분야에서 활용될 수 있다. 그러나 기드라를 제대로 활용하기 위해서는 풍부한 경험이 필요하다. 이 책은 실습을 중심으로 조작 방법이나 분석 방법을 효과적으로 배울 수 있도록 구성했다. 기드라를 사용해 다양한 연습용 프로그램을 분석하며 정체를 밝혀가는 묘미를 느껴보길 바란다.

㈜사이버디펜스(cyberdefense) 연구소에서 Cyber Threat Intelligence Analyst로 일하며 멀웨어 분석, 사고 대응, 위협 정보 수집·분석 업무를 맡고 있다. 기술 분야 서클 올세이프(Allsafe)의 관리자이기도 하다. JSAC, HITCON CMT, AVAR, CPRCon, Black Hat EUROPE Arsenal, CodeBlue BlueBox 등에서 연설했다.

CHAPTER 1 리버스 엔지니어링 입문1.1 리버스 엔지니어링1.2 프로그램 실행1.3 호출 규약1.4 C 언어와 어셈블리 언어1.5 PE 포맷1.6 x64 아키텍처CHAPTER 2 기드라 입문2.1 기드라란2.2 설치2.3 프로젝트2.4 임포트 2.5 CodeBrowserCHAPTER 3 리버스 엔지니어링 연습3.1 downloader.exe3.2 분석 접근법3.3 함수 인수 분석3.4 독자적인 구조체 수동 정의3.5 downloader.exe 분석을 마치며CHAPTER 4 Ghidra Script/Extension으로 기능 확장 4.1 기드라 기능 확장4.2 Ghidra Script 4.3 Ghidra API4.4 Headless Analyzer4.5 Ghidra ExtensionCHAPTER 5 Ghidra vs. Crackme - ELF 크랙미 분석5.1 크랙미란5.2 Level1: XOR을 통한 단순한 인코더5.3 Level2: 커스텀 인코더5.4 Level3: 버퍼 오버플로5.5 Level4: Go로 구현된 바이너리 해석CHAPTER 6 Ghidra vs. MOTHRA - 윈도우 백도어 분석 6.1 분석 준비6.2 main 함수6.3 C2 서버에서 명령어 검색6.4 명령어 분기6.5 MOTHRA RAT 분석을 마치며CHAPTER 7 Ghidra vs. BlackBicorn - 윈도우 패커 분석7.1 패커란7.2 BlackBicorn 개요7.3 BlackBicorn 분석(스테이지 0)7.4 BlackBicorn 분석(스테이지 1)7.5 BlackBicorn 분석(스테이지 2)7.6 BlackBicorn 분석을 마치며CHAPTER 8 Ghidra vs. Godzilla Loader - 윈도우 멀웨어 분석8.1 멀웨어계의 고질라 Godzilla Loader8.2 분석 대상 파일8.3 패커 분석8.4 문자열 난독화 복원8.5 Godzilla Loader의 기능8.6 Godzilla Loader 분석을 마치며CHAPTER 9 Ghidra vs. SafeSpy - 안드로이드 앱 분석9.1 안드로이드 기초9.2 안드로이드 네이티브 라이브러리의 기초9.3 안드로이드 앱 정적 분석9.4 SafeSpy 앱 분석APPENDIX A 기드라 응용A.1 Binary PatchingA.2 Program DifferenceA.3 Version TrackingA.4 Ghidra ServerA.5 기드라 커스터마이즈A.6 컬러 스키마 변경APPENDIX B Ghidra Script 소개B.1 내장된 Ghidra ScriptB.2 서드 파티 Ghidra ScriptB.3 저자들이 만든 오리지널 스크립트APPENDIX C 실전 문제 풀이C.1 Level1.exeC.2 Level2.exe