The Ghidra Book

기드라 리버스 엔지니어링 완벽 가이드
$51.03
SKU
9791161756912
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 01/3 - Thu 01/9 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/31 - Thu 01/2 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/07/22
Pages/Weight/Size 188*235*36mm
ISBN 9791161756912
Categories IT 모바일 > 네트워크/해킹/보안
Description
기드라(Ghidra)를 이용한 리버스 엔지니어링을 마스터하고 싶은 사이버 보안 담당자를 위한 바이블이다. 이 책을 읽고 나면 기드라가 리버스 엔지니어링을 위해서 제공하는 모든 기능을 배울 수 있으며, 기드라를 이용해 모든 종류의 소프트웨어와 악성코드를 분석하는 능력을 갖춘 전문가가 될 수 있다.
Contents
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 사용자를 위한 기드라

__기본 지식
____데이터베이스 생성
____기본적인 창과 탐색
__스크립트
__요약
찾아보기
Author
크리스 이글,카라 낸스,윤우빈
40년 경력의 리버스 엔지니어로, 『The IDA Pro Book(한국어판)』(에이콘, 2012)의 저자이며 인기있는 리버스 엔지니어링 교육자다. 수많은 리버스 엔지니어링 툴을 만들었고 블랙햇(Blackhat), 데프콘(Defcon), 쉬무콘(Shmoocon)과 같은 보안 콘퍼런스에서 발표자로 활약했다.
40년 경력의 리버스 엔지니어로, 『The IDA Pro Book(한국어판)』(에이콘, 2012)의 저자이며 인기있는 리버스 엔지니어링 교육자다. 수많은 리버스 엔지니어링 툴을 만들었고 블랙햇(Blackhat), 데프콘(Defcon), 쉬무콘(Shmoocon)과 같은 보안 콘퍼런스에서 발표자로 활약했다.