메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

리버스 엔지니어링 도구 기드라의 좋은 시작점

drv***

|

2022-02-22

리버스 엔지니어링 기드라 실전 가이드

오픈소스 소프트웨어 기드라를 이용해 실용적인 리버스 엔지니어링 기술을 해설한다. 실습을 중심으로 조작, 분석 방법을 효과적으로 배울 수 있다.

  • 저자 : 나카지마 쇼타 , 고타케 다이치 , 하라 히로아키 , 가와바타 고헤이
  • 번역 : 이창선 , 임재용
  • 출간 : 2022-01-10
위키리크스의 볼트7(Valut7) 공개를 통해 강제(?) 그 존재가 알려진 기드라(Ghidra)는 NSA의 오픈소스 선언 및 RSA 콘퍼런스에서 공식 발표를 거쳐 많은 정부 관련 부처 및 보안업체들이 사용하고 있는 소프트웨어 리버스 엔지니러잉 도구로 관련업계에서 주목받고 있습니다. 자바로 개발되어 운영체제에 독립적으로 실행할 수 있으며 64비트 환경이라는 낮은 장벽만 감안한다면 누구나 큰 제약 없이 무료로 사용할 수 있는 장점을 갖추었습니다. 강력한 기능을 제공해 줄 뿐만 아니라 성능이 우수한 디컴파일러가 내장되어 있어 어셈블리에 대한 캐즘(Chasm)이 부담스러운 입문자들에게 추천할 만한 좋은 도구입니다.
 
2019년 처음 공개되었을 때는 리버싱의 디팩토 표준인 IDA Pro와 비교되어, 예를 들어 디버거나 xref 등을 지원해 주지 않았습니다. 기드라의 등장은 태생적으로 많은 주목을 받았었기 때문에 IDA Pro와 비교하는 글들이 등장 초기에 많이 작성되었고, 지금도 그 글들이 상위 검색 결과로 노출되고 있습니다. 하지만, 공개 이후 오픈소스인 만큼 많은 기능 추가가 이루어 졌고 전 세계 리버서들이 많은 익스텐션과 스크립트를 작성, 공개하여 나름의 생태계를 유지하고 있습니다. 지금은 기능이 향상되어 gdb/WinDBG과 연동되거나 xref를 제공해 줍니다. [리버스 엔지니어링 기드라 실전 가이드]는 웹에서 검색되는 철지난 글과 달리 최신 내용이 반영되여 기드라를 시작하는 분들에게 훌륭한 시작점이 됩니다.
 
IDA Pro 또한 기드라에 있었던 undo 기능이 없었지만 7.3에서 추가되었습니다. 상호 발전하는 각자의 조금씩 장점이 다른 두 도구를 적절한 상황에 익숙하게 사용할 수 있다면 "건초 더미 속에서 바늘 하나를 찾는 작업 같은 지루한 반복(도서 속의 표현)"이 단축될 것은 자명할 것입니다.
 
기드라의 장점은 디컴파일 뿐만 아니라 분석 자동화를 위한 강력한 자바/파이썬 문법의 스크립트 기능으로 다양하고 심도있는 분석이 가능하며 ELF, PE, APK 포맷을 동일한 환경의 IDE를 통하여 작업이 가능하다는 것입니다. 다만 리버스 엔지니어링이라는 업무와 기드라 도구의 특성상 많은 관련 경험이 기반되어야 제대로 활용할 수 있으며, 많은 실습을 통해서만이 조작 및 리버싱을 효과적으로 배워나갈 수 있습니다. [리버스 엔지니어링 기드라 실전 가이드]는 책의 대부분이 실습과 사례(예제)분석으로 되어 있으며 진행에 필요한 모든 리소스를 제공해 줍니다. 많은 실습이 요구되는 리버스 엔지니어링 분야에 적합한 내용이며 각 챕터 서두에 분명한 목적으로 명시하고, 적절한 스크린샷과 자세한 내용, 따라 하기 식의 튜토리얼 구성이 기드라 활용의 밑거름이 되어 줍니다. 다만, 어셈블리의 난해함이나 컴파일 및 실행파일 구조에 대한 부담 등은 어느 디스어셈블 도구들과 크게 다르지 않는다는 부분은 마찬가지입니다.
 
- 목차 -
1. 리버스 엔지니어링 입문
2. 기드라 입문
3. 리버스 엔지니어링 연습
4. 기드라 스크립트/익스텐션으로 기능 확장
5. 기드라 vs. 크랙미 - ELF 분석
6. 기드라 vs. MOTHRA-윈도우 백도어 분석
7. 기드라 vs. BlackBicorn - 윈도우 패커 분석
8. 기드라 vs. 갓질라 로더 - 윈도우 멀웨어 분석
9. 기드라 vs. SafeSpy - 안드로이드 앱 분석
부록A. 기드라 응용
부록B. 기드라 스크립트 소개
부록C. 실전 문제 풀이
 
1장을 통해 리버스 엔지니어링 입문자를 위해 필수적인 내용들을 소개를 합니다. 소스코드를 컴파일 했을 때 전후를 비교한 if/while 등의 명령어, 함수에 대해 이해합니다. 2장을 통해 기드라의 각 메뉴와 기능에 대한 레퍼런스를 제공해 주며, 3장을 통해 2장에서 알아본 기능들을 실습합니다. 4장에서는 파이썬/자바 문법의 스크립트와 자바 문법의 UI 익스텐션을 만들고 사용하는 방법을 설명합니다. 1장에서 4장까지 내용을 통해 기드라를 활용할 수 있는 전반적인 사용법을 알려주며, 5장부터 9장까지 예제를 통해 리버스 엔지니어링 연습을 하고 부록을 통해 바이너리 패치, 프로그램 Diff, Version Traking, Ghidra Server 등 다양한 유용한 기능을 알아봅니다.
 
특히 부록A에서 찾아볼 수 있는 IDA Pro 사용자를 위한 Function Graph 동작 설정 방법이나 키 바인딩 변경은 기드라를 더욱 쉽고 빠르게 적응할 수 있도록 도와 줍니다.
 
(키 바인딩 관련 참고)
Partial IDA Pro KeyBindings for Ghidra - https://github.com/JeremyBlackthorne/Ghidra-Keybindings
닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?