Top

The Ghidra Book [기드라 리버스 엔지니어링 완벽 가이드]

  • 원서명The Ghidra Book: The Definitive Guide (ISBN 9781718501027)
  • 지은이크리스 이글(Chris Eagle), 카라 낸스(Kara Nance)
  • 옮긴이윤우빈
  • ISBN : 9791161756912
  • 45,000원
  • 2024년 07월 22일 펴냄
  • 페이퍼백 | 788쪽 | 188*235mm
  • 시리즈 : 해킹과 보안

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/ghidra-book

요약

기드라(Ghidra)를 이용한 리버스 엔지니어링을 마스터하고 싶은 사이버 보안 담당자를 위한 바이블이다. 이 책을 읽고 나면 기드라가 리버스 엔지니어링을 위해서 제공하는 모든 기능을 배울 수 있으며, 기드라를 이용해 모든 종류의 소프트웨어와 악성코드를 분석하는 능력을 갖춘 전문가가 될 수 있다.

이 책에서 다루는 내용

◆ 디스어셈블리 코드 탐색 방법
◆ 기드라에 내장된 디컴파일러를 이용한 빠른 분석 방법
◆ 난독화된 바이너리 분석 방법
◆ 새로운 데이터 유형을 인식하도록 기드라 기능 확장 방법
◆ 새로운 기드라 분석기와 로더 생성 방법
◆ 새로운 프로세서와 명령어 셋 추가 방법
◆ 작업 자동화를 위한 기드라 스크립트 작성 방법
◆ 리버스 엔지니어링 협업을 위한 환경 설정 방법

이 책의 대상 독자

야심차고 경험이 풍부한 소프트웨어 리버스 엔지니어를 대상으로 한다. 리버스 엔지니어링 경험이 없어도 상관없다. 책의 초반부에서 리버스 엔지니어링을 소개하고, 기드라로 바이너리를 탐색하고 분석하는 데 필요한 배경 지식을 제공하기 때문이다. 자신의 툴킷에 기드라를 추가하고자 하는 숙련된 리버스 엔지니어라면 처음 2개의 부에서 기드라에 대한 기본적인 지식을 빠르게 숙지한 다음 관심 있는 장으로 이동해서 보면 된다. 기드라 사용 경험이 있는 사용자나 개발자라면 새로운 기드라 익스텐션을 만들고 자신의 경험과 지식을 기드라 프로젝트에 기여할 수 있도록 책의 후반부를 집중해서 볼 수도 있다.

이 책의 구성

총 5개의 부로 구성돼 있다. 1부에서는 디스어셈블리와 리버스 엔지니어링, 기드라 프로젝트를 소개한다. 2부에서는 기본적인 기드라 사용법을 설명하고, 3부에서는 사용자가 원하는 대로 사용자 지정 방법과 자동화 방법을 설명한다. 4부에서는 특정 유형의 기드라 모듈과 지원 개념을 설명한다. 5부에서는 리버스 엔지니어가 마주치게 되는 몇 가지 실제 상황에 기드라를 적용하는 방법을 설명한다.

1부: 소개
‘1장, 디스어셈블리 소개’에서는 디스어셈블리의 이론과 실행에 대해 소개하고 2가지 일반적인 디스어셈블리 알고리듬의 장단점을 살펴본다.
‘2장, 리버싱과 디스어셈블리 툴’에서는 리버스 엔지니어링과 디스어셈블리에서 사용할 수 있는 툴의 종류를 알아본다.
‘3장, 기드라를 만나다’에서 비로소 기드라를 만나고 그 기원과 기드라 오픈소스 툴을 사용하는 방법을 가볍게 살펴본다.

2부: 기본적인 기드라 사용법
‘4장, 기드라 시작하기’부터는 기드라와 함께하는 본격적인 여정이 시작된다. 프로젝트를 만들고, 파일을 분석하고, 기드라의 그래픽 사용자 인터페이스(GUI, Graphical User Interface)를 이해함으로써 기드라가 작동하는 모습을 처음 엿볼 수 있다.
‘5장, 기드라 데이터 디스플레이’에서는 파일 분석을 위한 기드라의 주요 툴인 CodeBrowser를 설명한다. 또한 CodeBrowser의 창 구성도 경험한다.
‘6장, 기드라의 디스어셈블리 이해’에서는 기드라 디스어셈블리를 이해하고 이용하는 데 필요한 기본적인 개념을 설명한다.
‘7장, 디스어셈블리 코드 변경’에서는 기드라의 분석을 보완하고 자체 분석 과정의 일부로 기드라 디스어셈블리를 조작하는 방법을 알아본다.
‘8장, 데이터 타입과 데이터 구조체’에서는 컴파일된 프로그램에서 발견되는 간단하거나 복잡한 데이터 구조체를 정의하고 변경하는 방법을 살펴본다.
‘9장, 상호 참조’에서는 상호 참조와 상호 참조가 그래프 작성을 어떻게 지원하는지 그리고 프로그램의 동작을 이해하는 데 어떻게 핵심적인 역할을 하는지 자세히 설명한다.
‘10장, 그래프’에서는 기드라의 그래프 기능과 바이너리 분석 툴로 그래프를 이용하는 방법을 설명한다.

3부: 자신을 위한 기드라 만들기
‘11장, 소프트웨어 리버스 엔지니어링 협업’에서는 기드라의 고유한 기능인 기드라를 이용한 협업 지원을 소개한다. 기드라 서버를 설정하는 방법 및 다른 분석가와 프로젝트를 공유하는 방법을 살펴본다.
‘12장, 기드라 사용자 정의’에서는 개별적인 분석 워크플로를 지원하고자 프로젝트와 툴을 설정함으로써 기드라를 사용자 정의하는 방법을 설명한다.
‘13장, 기드라의 세계관 확장’에서는 기드라가 새로운 바이너리 구조를 인식할 수 있게 라이브러리 시그니처 및 기타 특정 콘텐츠를 만들고 적용하는 방법을 알려준다.
‘14장, 기드라 스크립트’에서는 기드라의 인라인 편집기를 사용해 파이썬과 자바로 작성하는 기드라의 스크립트 기능을 소개한다.
‘15장, 이클립스와 기드라’에서는 이클립스를 기드라에 통합시키고 그에 따른 강력한 스크립트 기능으로 기드라 스크립트를 새로운 수준으로 끌러올릴 것이며, 예제를 통해 새로운 분석기를 만들어본다.
‘16장, 기드라 헤드리스 모드’에서는 GUI가 없는 헤드리스 모드에서 기드라를 사용하는 방법을 소개한다. 그리고 대규모의 반복적인 작업에서 헤드리스 모드가 제공하는 장점을 살펴본다.

4부: 심층 분석
‘17장, 기드라 로더’에서는 기드라에서 파일을 임포트하고 로드하는 방법을 자세히 설명한다. 그리고 이전에 인식되지 않은 파일 형식을 처리하기 위한 새로운 로더를 만들어본다.
‘18장, 기드라 프로세서’에서는 프로세서 아키텍처를 정의하기 위한 기드라의 SLEIGH 언어를 소개한다. 기드라에 새로운 프로세서와 명령을 추가하는 과정을 경험한다.
‘19장, 기드라 디컴파일러’에서는 기드라의 매우 인기 있는 기능 중 하나인 기드라 디컴파일러를 자세히 설명한다. 기드라 디컴파일러가 내부적으로 어떻게 동작하고 분석 과정에 어떻게 기여하는지 살펴본다.
‘20장, 컴파일러’에서는 다른 컴파일러로 컴파일되거나 대상 플랫폼이 다른 코드에 대해 설명한다.

5부: 실제 분석에 적용
‘21장, 난독화된 코드 분석’에서는 코드를 실행시키지 않는 정적 분석으로 난독화된 코드를 분석하는 방법을 설명한다.
‘22장, 바이너리 패치’에서는 분석을 수행하는 동안 기드라를 이용해 바이너리를 패치해서 새로운 버전의 패치된 바이너리를 만드는 방법을 설명한다.
‘23장, 바이너리 비교와 버전 추적’에서는 기드라를 이용해 두 바이너리 간의 차이점을 식별하는 방법과 바이너리의 버전을 추적하는 기능을 간단히 소개한다.

‘부록: IDA 사용자를 위한 기드라’에서는 IDA에 익숙한 사용자를 위해 IDA 용어와 사용법을 기드라의 유사한 기능에 매핑시키기 위한 팁과 트릭을 제공한다.

저자/역자 소개

지은이의 말

현재와 미래의 리버스 엔지니어에게 기드라를 소개하는 것이 이 책의 목표다. 숙련된 리버스 엔지니어의 손에서 기드라는 분석 과정을 유연하게 만들고, 리버스 엔지니어의 분석 작업을 개선하고 각자의 요구 사항에 맞게 사용자 정의와 기능이 확장될 수 있다. 리버스 엔지니어라면 기드라를 쉽게 사용 가능하다. 특히 이진 바이너리 분석을 시작할 때 내장된 디컴파일러는 디스어셈블리 코드와 하이레벨 언어 간의 관계를 명확히 이해할 수 있게 해준다.
기드라에 대한 책을 쓰는 일은 쉽지 않다. 기드라는 지속적으로 진화하고 있는 복잡한 오픈소스 리버스 엔지니어링 툴이다. 기드라 커뮤니티는 계속해서 기드라의 기능을 개선하고 확장해 나가고 있다. 새로운 많은 오픈소스 프로젝트와 마찬가지로 기드라는 빠른 속도로 진화돼 릴리스되고 있다. 이 책을 집필하는 동안 가졌던 주요 목표는, 기드라가 진화함에 따라 현재와 미래의 기드라 버전을 이해하고 당면한 리버스 엔지니어링 문제를 해결하는 데 기드라를 효과적으로 활용할 수 있도록 광범위하고 깊은 지식 기반을 제공하는 것이었다. 가능한 한 기드라 버전을 가리지 않으려고 노력했다. 다행스럽게도 새로운 버전의 기드라가 나오더라도 문서화가 잘돼 있으며, 책에서 설명한 기드라 버전과 새로운 버전 간에 차이가 발생할 경우 버전별로 자세한 가이드를 제공하는 변경 사항 목록이 있다.

지은이 소개

크리스 이글(Chris Eagle)

40년 경력의 리버스 엔지니어로, 『The IDA Pro Book』(2판 한국어판, 에이콘, 2012)의 저자이며 인기있는 리버스 엔지니어링 교육자다. 수많은 리버스 엔지니어링 툴을 만들었고 블랙햇(Blackhat), 데프콘(Defcon), 쉬무콘(Shmoocon)과 같은 보안 콘퍼런스에서 발표자로 활약했다.

카라 낸스(Kara Nance)

개인 보안 컨설턴트로, 수년 동안 컴퓨터공학 교수로 재직했다. 허니넷(Honeynet) 프로젝트의 이사회에서 활동했으며 세계적인 콘퍼런스에서 수많은 강연을 했다. 기드라 익스텐션 만들기를 좋아하며 정기적으로 기드라 교육을 제공한다.

옮긴이의 말

리버스 엔지니어링은 전통적으로 소프트웨어 보안과 디지털 포렌식, 악성코드 분석, 보안 취약점 연구 등 사이버 보안 영역에서 필요한 중요 기술로 자리 잡고 있습니다. 오늘날의 IT 환경은 클라우드 컴퓨팅, 사물인터넷(IoT, Internet of Things), 인공지능(AI, Artificial Intelligence) 등 혁신적인 기술이 주도하고 있으며 앞으로도 새로운 IT 기술이 주도하는 방향으로 끊임없이 진화해갈 것입니다. 그러한 새로운 기술들은 새로운 기회를 제공하지만 새로운 형태의 보안 위협에 직면하게 하고 있습니다. 전통적인 보안 위협뿐만 아니라 새로운 형태의 보안 위협에 대응하는 데 기본적으로 필요한 기술이 소프트웨어 분석 능력입니다. 단순한 소프트웨어 분석 역량이 아닌 보안 위협의 본질을 파악하고 그것을 역추적할 수 있는 기술과 통찰력이 필요합니다. 이를 위해 사이버 보안 전문가에게 필요한 기본 도구 중 하나가 리버스 엔지니어링 도구입니다. 기드라는 오픈소스 리버스 엔지니어링 도구 중 가장 강력하고 유연합니다. 오픈소스이기 때문에 전 세계의 사이버 보안 전문가와 연구자들이 적극적으로 기능을 발전시키고 있다는 장점이 있습니다. 기드라는 강력한 디컴파일러와 디스어셈블러를 포함하고 있으며 복잡한 바이너리 분석을 손쉽게 수행할 수 있는 다양한 기능을 제공하고 있습니다.
기드라의 설치부터 기본 사용법 그리고 기드라가 제공하는 다양한 기능 및 활용 방법을 자세히 설명하며, 사용자가 필요하다면 자신만의 고유한 기능을 만들어 사용할 수 있는 방법까지 자세히 다루는 것이 이 책입니다. 즉, 리버스 엔지니어링을 수행해야 하는 사이버 보안 담당자를 위한 종합적이고 전문적인 안내서이자 실용적인 지침서라고 할 수 있습니다. 기드라를 활용한 리버스 엔지니어링의 세계를 깊이 이해하고 자신의 리버스 엔지니어링 능력을 한 단계 끌어올리는 기회가 되길 바랍니다.

옮긴이 소개

윤우빈

기존의 IT 기술과 새로 만들어지고 있는 최신 기술을 보안이라는 관점에서 이해하고 새로운 기술, 비즈니스 영역의 새로운 보안 위협과 그에 대한 대응 기술을 고민하며, 에이콘출판사를 통해 다양한 보안 관련 지식을 공유하고자 노력하고 있다. 지금도 여전히 새로운 분야에 대한 보안 기술 연구와 다양한 보안 기술 개발을 위해 진땀 흘리고 있다.

목차

목차
  • 1부. 소개
  • 1장. 디스어셈블리 소개
    • 디스어셈블리 이론
    • 디스어셈블리란
    • 디스어셈블리하는 이유
      • 악성코드 분석
      • 보안 취약점 분석
      • 소프트웨어 상호 운용
      • 컴파일러 검증
      • 디버깅 출력
    • 디스어셈블러의 동작 방식
      • 기본적인 디스어셈블리 알고리듬
      • 리니어 스윕 디스어셈블리
      • 재귀 하강 디스어셈블리
    • 요약

  • 2장. 리버싱과 디스어셈블리 툴
    • 유형을 분류하기 위한 툴
      • file
      • PE Tools
      • PEiD
    • 요약을 위한 툴
      • nm
      • ldd
      • objdump
      • otool
      • dumpbin
      • c++filt
    • 심층 분석 툴
      • strings
      • 디스어셈블러
    • 요약

  • 3장. 기드라를 만나다
    • 기드라 라이선스
    • 기드라 버전
    • 기드라 지원 리소스
    • 기드라 다운로드
    • 기드라 설치
      • 기드라 디렉터리 구조
      • 기드라 시작
    • 요약

  • 2부. 기본적인 기드라 사용법
  • 4장. 기드라 시작하기
    • 기드라 실행
    • 새로운 프로젝트 생성
      • 기드라 파일 로딩
      • Raw Binary 로더
    • 기드라로 파일 분석
      • 자동 분석 결과
    • 초기 분석 과정의 작업 내용
      • 작업 내용 저장과 종료
    • 기드라 관련 팁과 트릭
    • 요약

  • 5장. 기드라 데이터 디스플레이
    • CodeBrowser
    • CodeBrowser 창
      • Listing 창
      • 추가적인 디스어셈블리 창 열기
      • 기드라의 Function Graph
      • Program Trees 창
      • Symbol Tree 창
      • Data Type Manager 창
      • Console 창
      • Decompiler 창
    • 기타 기드라 창
      • Bytes 창
      • Defined Data 창
      • Defined Strings 창
      • Symbol Table 창과 Symbol References 창
      • Memory Map 창
      • Function Call Graph 창
    • 요약

  • 6장. 기드라의 디스어셈블리 이해
    • 디스어셈블리 탐색
      • 이름과 라벨
      • 기드라에서 탐색
      • Go To 대화상자
      • 탐색 히스토리
    • 스택 프레임
      • 함수 호출 메커니즘
      • 호출 규약
      • 스택 프레임에 대한 추가 고려 사항
      • 지역 변수 레이아웃
      • 스택 프레임 예
    • 기드라 스택 뷰
      • 기드라 스택 프레임 분석
      • Listing 창에서의 스택 프레임
      • 디컴파일러의 스택 프레임 분석
      • 피연산자로서의 지역 변수
      • 기드라 스택 프레임 에디터
    • 검색
      • Search Program Text 대화상자
      • Search Memory 대화상자
    • 요약

  • 7장. 디스어셈블리 코드 변경
    • 이름과 라벨 변경
      • 파라미터와 지역 변수의 이름 변경
      • 라벨 이름 변경
      • 새로운 라벨 추가
      • 라벨 편집
      • 라벨 제거
      • 라벨 탐색
    • 주석
      • 줄 끝 주석
      • Pre 주석과 Post 주석
      • Plate 주석
      • Repeatable 주석
      • 파라미터와 지역 변수 주석
      • 어노테이션
    • 기본적인 코드 변환
      • 코드 표시 옵션 변경
      • 명령 피연산자의 형식 변경
      • 함수 변경
      • 데이터를 코드로 변환(또는 코드를 데이터로 변환)
    • 기본적인 데이터 변환
      • 데이터 타입 지정
      • 문자열 처리
      • 배열 정의
    • 요약

  • 8장. 데이터 타입과 데이터 구조체
    • 데이터 이해하기
    • 데이터 구조체의 사용 형태 인식
      • 배열 요소에 대한 접근
      • 구조체 멤버에 대한 접근
    • 기드라에서 구조체 만들기
      • 새로운 구조체 만들기
      • 구조체 필드 수정
      • 구조체의 레이아웃 적용
    • C++ 리버싱의 기본
      • this 포인터
      • 가상 함수와 Vftable
      • 객체의 생명주기
      • 이름 맹글링
      • 런타임 타입 식별
      • 상속 관계
      • C++ 리버스 엔지니어링 참고 자료
    • 요약

  • 9장. 상호 참조
    • 참조에 대한 기본 지식
      • 상호 참조(역참조)
      • 참조 예
    • 상호 참조 관리 창
      • XRefs 창
      • References To 창
      • Symbol References 창
      • 참조 추가와 변경
    • 요약

  • 10장. 그래프
    • 기본 블록
    • Function Graph 창
    • Function Call Graph 창
    • 트리 뷰
    • 요약

  • 3부. 자신을 위한 기드라 만들기
  • 11장. 소프트웨어 리버스 엔지니어링 협업
    • 팀워크
    • 기드라 서버 설정
    • 공유 프로젝트
      • 공유 프로젝트 생성
      • 프로젝트 관리
    • Project 창 메뉴
      • File 메뉴
      • Edit 메뉴
      • Project 메뉴
    • 프로젝트 저장소
      • 버전 관리
      • 예제 시나리오
    • 요약

  • 12장. 기드라 사용자 정의
    • CodeBrowser
      • 창 재정렬
      • Edit의 Tool Options 메뉴
      • Tool 옵션
      • 특별한 툴 편집 기능
      • CodeBrowser 레이아웃 저장
    • 기드라 Project 창
    • Tools 메뉴
    • 워크스페이스
    • 요약

  • 13장. 기드라의 세계관 확장
    • 파일 임포트
    • 분석기
    • 워드 모델
    • 데이터 타입
      • 새로운 데이터 타입 아카이브 생성
    • Function ID
    • Function ID 플러그인
      • Function ID 플러그인 예제: UPX
      • Function ID 플러그인 예제: 정적 라이브러리 프로파일링
    • 요약

  • 14장. 기드라 스크립트
    • Script Manager 메뉴
      • Script Manager 창
      • Script Manager 툴바
    • 스크립트 개발
      • 자바 스크립트 작성(JavaScript가 아님!)
      • 스크립트 편집 예제: 정규 표현 검색
      • 파이썬 스크립트
      • 다른 언어 지원
    • Ghidra API 소개
      • Address 인터페이스
      • Symbol 인터페이스
      • Reference 인터페이스
      • GhidraScript 클래스
      • Program 클래스
      • Function 인터페이스
      • Instruction 인터페이스
    • 기드라 스크립트 예제
      • 예제 1: 함수 나열
      • 예제 2: 명령 나열
      • 예제 3: 상호 참조 나열
      • 예제 4: 함수 호출 찾기
      • 예제 5: 어셈블리 언어 에뮬레이팅
    • 요약

  • 15장. 이클립스와 기드라
    • 이클립스
      • 이클립스 통합
      • 이클립스 시작
      • 이클립스를 이용한 스크립트 편집
    • GhidraDev 메뉴
      • GhidraDev ➤ New
      • Package Explorer 탐색
    • 예제: 기드라 분석기 모듈 프로젝트
      • 단계 1: 문제 정의
      • 단계 2: 이클립스 모듈 생성
      • 단계 3: 분석기 빌드
      • 단계 4: 이클립스에서 분석기 테스트
      • 단계 5: 기드라에 분석기 추가
      • 단계 6: 기드라에서 분석기 테스트
    • 요약

  • 16장. 기드라 헤드리스 모드
    • 시작
      • 단계 1: 기드라 실행
      • 단계 2와 3: 새로운 기드라 프로젝트를 특정 위치에 생성
      • 단계 4: 프로젝트에 파일 임포트
      • 단계 5와 6: 파일을 자동 분석, 저장, 종료
      • 옵션과 파라미터
    • 스크립트 작성
      • HeadlessSimpleROP
      • 자동화된 FidDb 작성
    • 요약

  • 4부. 심층 분석
  • 17장. 기드라 로더
    • 알려지지 않은 파일 형식 분석
    • 윈도우 PE 파일을 수동으로 로딩
    • 예제 1: SimpleShellcode 로더 모듈
      • 단계 0: 한발 물러나기
      • 단계 1: 문제를 정의
      • 단계 2: 이클립스 모듈을 생성
      • 단계 3: 로더를 빌드
      • 단계 4: 로더를 기드라에 추가
      • 단계 5: 기드라에서 로더를 테스트
    • 예제 2: 간단한 셸코드 소스 로더
      • 업데이트 1: 임포터에 대한 응답을 수정
      • 업데이트 2: 소스코드에서 셸코드 찾기
      • 업데이트 3: 셸코드를 바이트 값으로 변환
      • 업데이트 4: 바이트 배열을 로드
      • 결과
    • 예제 3: 간단한 ELF 셸코드 로더
      • 준비 작업
      • ELF 헤더 형식
      • 로더의 바이너리 지원 명세 확인
      • 기드라에 파일 내용 로드
      • 데이터 바이트 형식 지정 및 엔트리 포인트 추가
      • 언어 정의 파일
      • Opinion 파일
      • 결과
    • 요약

  • 18장. 기드라 프로세서
    • 기드라 프로세서 모듈 이해
      • 이클립스 프로세서 모듈
      • SLEIGH
      • 프로세서 매뉴얼
    • 기드라 프로세서 모듈 수정
      • 문제 설명
      • 예제 1: 프로세서 모듈에 명령 추가
      • 예제 2: 프로세서 모듈에 있는 명령 수정
      • 예제 3: 프로세서 모듈에 레지스터 추가
    • 요약

  • 19장. 기드라 디컴파일러
    • 디컴파일러 분석
      • 분석 옵션
    • Decompiler 창
      • 예제 1: Decompiler 창 편집
      • 예제 2: 반환하지 않는 함수
      • 예제 3: 자동화된 구조체 생성
    • 요약

  • 20장. 컴파일러
    • 하이레벨 구조
      • switch문
      • 예제: gcc와 마이크로소프트 C/C++ 컴파일러 비교
    • 컴파일러 빌드 옵션
      • 예제 1: 나머지 연산자
      • 예제 2: 삼항 연산자
      • 예제 3: 함수 인라인
    • 컴파일러의 C++ 구현
      • 함수 오버로딩
      • RTTI 구현
    • main 함수 찾기
      • 예제 1: 리눅스 x86-64에서 gcc로 _start에서 main 함수로 전환
      • 예제 2: FreeBSD x86-64에서 clang으로 _start에서 main 함수로 전환
      • 예제 3: 마이크로소프트 C/C++ 컴파일러로 _start에서 main 함수로 전환
    • 요약

  • 5부. 실제 분석에 적용
  • 21장. 난독화된 코드 분석
    • 안티리버스 엔지니어링
      • 난독화
      • 정적 분석 방지 기술
      • 임포트 함수 난독화
      • 동적 분석 방지 기술
    • 기드라를 이용한 바이너리의 정적 난독화 해제
      • 스크립트 기반의 난독화 해제
      • 에뮬레이션 기반의 난독화 해제
      • 단계 1: 문제 정의
      • 단계 2: 이클립스 스크립트 프로젝트 생성
      • 단계 3: 에뮬레이터 구현
      • 단계 4: 기드라에 스크립트 추가
      • 단계 5: 기드라에서 스크립트 테스트
    • 요약

  • 22장. 바이너리 패치
    • 패치 계획
    • 변경 대상 찾기
      • 메모리 검색
      • 직접 참조 검색
      • 명령 패턴 검색
      • 특정 동작 찾기
    • 패치 적용
      • 간단한 패치
      • 좀 더 복잡한 패치
    • 파일 익스포트
      • 익스포트 형식
      • 바이너리 익스포트 형식
      • 스크립트 지원 익스포트
    • 예제: 바이너리 패치
    • 요약

  • 23장. 바이너리 비교와 버전 추적
    • 바이너리 비교
      • Program Diff 툴
      • 예제: 분석된 두 파일의 병합
    • 함수 비교
      • Function Comparison 창
      • 예제: 암호화 루틴 비교
    • 버전 추적(트래킹)
      • 버전 추적 개념
    • 요약

  • 부록. IDA 사용자를 위한 기드라
    • 기본 지식
      • 데이터베이스 생성
      • 기본적인 창과 탐색
    • 스크립트
    • 요약
  • 찾아보기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안