Ghidra를 활용한 리버스 엔지니어링 입문 (NSA가 만든 Ghidra의 다양한 기능과 사용법)

Ghidra를 활용한 리버스 엔지니어링 입문 (NSA가 만든 Ghidra의 다양한 기능과 사용법)

$35.00
Description
리버스 엔지니어링 입문자를 위한 Ghidra 가이드북이다. Ghidra의 역사, 구조, 기본적인 기능, 확장기능 개발, 스크립트 등 Ghidra의 모든 것을 소개한다. Ghidra로 실제 사용됐던 악성코드를 분석하며 주요 기능을 알아보고, 리버스 엔지니어링에 대한 전반적인 지식을 얻을 수 있다. 또한 Ghidra 플러그인을 직접 개발하고 Ghidra의 확장 기능을 활용하기 위한 정적, 동적 심볼릭 실행, SMT 솔버를 비롯한 고급 리버스 엔지니어링 주제를 다룬다.
저자

A.P.데이비드

A.P.David
선임악성코드분석가이자리버스엔지니어다.IT분야에서7년이상의경력이있으며,자체바이러스백신제품을연구했고,이후악성코드분석가및리버스엔지니어로근무했다.대부분은행관련악성코드를리버스엔지니어링하고프로세스를자동화하는회사에서일했다.그후바이러스백신회사의중요악성코드부서에들어갔다.현재악성코드관련박사과정을밟으며GRADIANT(GalicianResearchandDevelopmentCenterinAdvancedTelecommunications)에서보안연구원으로일하고있다.여가시간에는마이크로소프트의윈도우10과NSA의Ghidra프로젝트등일부관련기업의취약점을찾아낸다.

목차

1부.Ghidra소개

1장.Ghidra시작
__기술적요구사항
__위키리크스Vault7
____NSA릴리스
__IDA및기타많은경쟁업체대비Ghidra
__Ghidra개요
____Ghidra설치
____Ghidra의특징개요
__요약
__질문

2장.Ghidra스크립트를통한리버스엔지니어링작업자동화
__기술적요구사항
__기존스크립트사용과적용
__스크립트클래스
__스크립트개발
__요약
__질문

3장.Ghidra디버그모드
__기술적요구사항
__Ghidra개발환경설정
__소프트웨어요구사항개요
____자바JDK설치
____이클립스IDE설치
____PyDev설치
____GhidraDev설치
__Ghidra코드와Ghidra스크립트디버깅
____이클립스에서Ghidra스크립트디버깅
____이클립스에서Ghidra구성요소디버깅
__GhidraRCE취약점
____GhidraRCE취약점설명
____GhidraRCE취약점공격
____GhidraRCE취약점수정
____취약한컴퓨터찾기
__요약
__질문
__더읽을거리

4장.Ghidra확장기능사용
__기술적요구사항
__기존Ghidra확장기능설치
____SampleTableProvider플러그인의코드분석
__Ghidra확장기능스켈레톤의이해
____분석기
____파일시스템
____플러그인
____익스포터
____로더
__Ghidra확장기능개발
__요약
__질문
__더읽을거리

2부.리버스엔지니어링

5장.Ghidra를사용한악성코드리버싱
__기술적요구사항
__환경설정
__악성코드지표찾기
____문자열찾기
____인텔리전스정보와외부소스
____import함수확인
__흥미로운악성코드샘플부분분석
____진입점함수
____0x00453340함수분석
____0x00453C10함수분석
____0x0046EA60함수분석
____0x0046BEB0함수분석
____0x0046E3A0함수분석
____0x004559B0함수분석
____0x004554E0함수분석
____0x0046C860함수분석
____0x0046A100함수분석
__요약
__질문
__더읽을거리

6장.스크립팅악성코드분석
__기술적요구사항
__Ghidra스크립팅API사용
__자바프로그래밍언어를사용해스크립트작성
__파이썬프로그래밍언어를사용해스크립트작성
__스크립트를사용한악성코드샘플의난독화해제
____델타오프셋
____API해시를주소로변환
____Ghidra스크립팅을사용해해시테이블난독화해제
____스크립팅결과향상
__요약
__질문
__더읽을거리

7장.GhidraHeadlessAnalyzer사용
__기술적요구사항
__Headless모드를사용하는이유
__프로젝트생성과채우기
__가져온바이너리나기존바이너리에대한분석수행
__프로젝트에서비GUI스크립트실행
__요약
__질문
__더읽을거리

8장.Ghidra를이용한바이너리감사
__기술적요구사항
__메모리손상취약점이해
____스택이해
____스택기반버퍼오버플로
____힙의이해
____힙기반버퍼오버플로
____포맷스트링
__Ghidra를사용한취약점찾기
__단순스택기반버퍼오버플로공격
__요약
__질문
__더읽을거리

9장.스크립팅바이너리감사
__기술적요구사항
__취약한함수찾기
____심볼테이블에서안전하지않은C/C++함수검색
____스크립팅을사용한프로그램디컴파일
__sscanf콜러검색
____콜러함수열거
__PCode를이용한콜러함수분석
____PCode와어셈블리어비교
____PCode검색과분석
____여러아키텍처에서동일한PCode기반스크립트사용
__요약
__질문
__더읽을거리

3부.Ghidra확장

10장.Ghidra플러그인개발
__기술적요구사항
__기존플러그인개요
____Ghidra배포에포함된플러그인
____서드파티플러그인
__Ghidra플러그인스켈레톤
____플러그인설명서
____플러그인코드작성
____플러그인에대한프로바이더
__Ghidra플러그인개발
____플러그인문서화
____플러그인클래스구현
____프로바이더구현
__요약
__질문
__더읽을거리

11장.새로운바이너리포맷통합
__기술적요구사항
__원시바이너리와포맷형식바이너리의차이점
____원시바이너리이해
____포맷된바이너리파일이해
__Ghidra로더개발
____MZ(오래된스타일DOS실행파일)파서
____오래된MZ(DOS실행파일)로더
__파일시스템로더이해
____파일시스템자원로케이터
__요약
__질문
__더읽을거리

12장.프로세서모듈분석
__기술적요구사항
__기존Ghidra프로세서모듈이해
__Ghidra프로세서모듈스켈레톤개요
____프로세서모듈개발환경설정
____프로세서모듈스켈레톤생성
__Ghidra프로세서개발
____문서화프로세서
____패턴을이용한함수와코드식별
____언어와언어변형지정
__요약
__질문
__더읽을거리

13장.Ghidra커뮤니티에기여
__기술적요구사항
__Ghidra프로젝트개요
____Ghidra커뮤니티
__기여도탐색
____법적측면의이해
____버그리포트제출
____새기능제안
____질문제출
____Ghidra프로젝트에풀리퀘스트제출
__요약
__질문
__더읽을거리

14장.고급리버스엔지니어링을위한Ghidra확장
__기술적요구사항
__고급리버스엔지니어링의기본지식
____심볼릭실행학습
____SMT솔버학습
____콘콜릭실행에대한학습
__고급리버스엔지니어링에Ghidra사용
____AngryGhidra로Ghidra에심볼릭실행기능추가
____pcode-to-llvm을사용해PCode에서LLVM으로변환
__요약
__질문
__더읽을거리

출판사 서평

◆Ghidra의기능,플러그인,확장기능활용
◆Ghidra에기여할수있는방법
◆악성코드리버스엔지니어링과바이너리감사수행
◆Ghidra플러그인으로리버스엔지니어링작업자동화
◆자신만의Ghidra확장기능,스크립트및기능개발
◆Ghidra스크립팅으로실행가능한바이너리에서취약점을찾는작업자동화
◆headless모드에서의Ghidra사용방법

리버스코드엔지니어,악성코드분석가,버그헌터,침투테스터,익스플로잇개발자,포렌식전문가,보안연구자,사이버보안학생을대상으로한다.실제로학습곡선을최소화하고자신만의도구를쓰기시작함으로써Ghidra를배우고자하는사람이라면누구나이책을즐기고목표를달성할수있다.

**

1장,‘Ghidra시작’에서는Ghidra의역사와사용자관점에서프로그램의개요를다룬다.
2장,‘Ghidra스크립트를통한리버스엔지니어링작업자동화’에서는Ghidra스크립트를사용해리버스엔지니어링작업을자동화하는방법을설명하고스크립트개발을소개한다.
3장,‘Ghidra디버그모드’에서는Ghidra개발환경설정방법,Ghidra디버그방법,Ghidra디버그모드취약점의모든내용을다룬다.
4장,‘Ghidra확장기능사용’에서는Ghidra확장기능을설치하고사용하는방법을보여줄뿐만아니라Ghidra기능을개발하기위한배경을설명한다.
5장,‘Ghidra를사용한악성코드리버싱’에서는실제악성코드샘플을리버싱해악성코드분석에Ghidra를사용하는방법을보여준다.
6장,‘스크립팅악성코드분석’에서는악성코드샘플에서발견된셸코드분석을자바와파이썬두언어를모두스크립팅해5장의내용에이어서설명한다.
7장,‘GhidraHeadlessAnalyzer사용’에서는GhidraHeadlessAnalyzer를설명하고7장에서개발한스크립트로획득한악성코드샘플에적용한다.
8장,‘Ghidra를이용한바이너리감사’에서는Ghidra로메모리손상취약점을찾고이를활용하는방법을설명한다.
9장,‘스크립팅바이너리감사’에서는8장에이어강력한PCode중간표현을활용해스크립팅으로버그헌팅프로세스를자동화하는방법을설명한다.
10장,‘Ghidra플러그인개발’에서는Ghidra플러그인확장기능이구현된Ghidra기능을최대한활용할수있는방법을설명함으로써Ghidra확장기능개발을자세히설명한다.
11장,‘새로운바이너리포맷통합’에서는실제파일포맷을예로들어새로운바이너리포맷을지원하는Ghidra확장기능을사용하는방법을설명한다.
12장,‘프로세서모듈분석’에서는SLEIGH프로세서사양언어를사용해Ghidra프로세서모듈을작성하는방법을설명한다.
13장,‘Ghidra커뮤니티에기여’에서는소셜네트워크,채팅을사용해개발,피드백,버그보고서,댓글등으로커뮤니티와상호작용하는방법을설명한다.
14장,‘고급리버스엔지니어링을위한Ghidra확장’에서는SMTsolvers,마이크로소프트Z3,정적및동적symbex,LLVM,Angr과같은고급리버스엔지니어링주제와도구를소개하고Ghidra와통합하는방법을설명한다.