Ghidra Reference
Ghidra 리버스 엔지니어링 레퍼런스
Ghidra Reference 소개
이 Ghidra 레퍼런스는 NSA Ghidra 리버스 엔지니어링 프레임워크를 위한 검색 가능한 치트시트입니다. 디스어셈블리 탐색 단축키(주소 이동, 라벨 이름 변경, 메모리 검색), 디컴파일러 창 조작(변수 타입 변경, 함수 시그니처 편집), Ghidra Python 스크립팅 API(currentProgram, getFunctionManager, getBytes, getReferencesTo)를 다룹니다.
자동 분석 옵션, 함수 제어 흐름 그래프, 심볼 테이블 탐색, 데이터 타입 관리(구조체 생성, C 헤더 파싱, 복합 타입 적용), 바이너리 패치 워크플로우(명령어 패치, 데이터 바이트 패치, 패치된 바이너리 내보내기)도 포함되어 있습니다.
악성코드 분석가, 취약점 연구원, 펌웨어 리버스 엔지니어, CTF 참가자가 브라우저에서 바로 Ghidra 단축키, 스크립팅 코드, 분석 기법을 빠르게 확인할 수 있도록 설계되었습니다.
주요 기능
- 디스어셈블리 탐색 및 라벨 이름 변경을 위한 Ghidra 단축키 모음
- 변수 타입 변경, 이름 변경, 함수 시그니처 편집 등 디컴파일러 레퍼런스
- currentProgram, getFunctionManager, getReferencesTo 등 Ghidra Python 스크립팅 예제
- Decompiler Parameter ID, Aggressive Instruction Finder 등 자동 분석 설정 가이드
- 구조체 생성, C 헤더 파싱, 메모리 타입 적용 등 데이터 타입 관리 안내
- 명령어 패치부터 수정된 바이너리 내보내기까지 바이너리 패치 워크플로우
- 함수 그래프, 심볼 테이블, 프로그램 트리 탐색 레퍼런스
- 디스어셈블리, 디컴파일, 스크립팅, 분석, 데이터타입, 패치 카테고리별 필터링
자주 묻는 질문
Ghidra에서 자주 쓰는 단축키는 무엇인가요?
G(주소 이동), L(라벨 이름 변경), Ctrl+Shift+F(메모리 검색), 세미콜론(주석 추가), Ctrl+E(내보내기), Ctrl+L(디컴파일러에서 변수 타입 변경), Ctrl+Shift+E(함수 시그니처 편집), T(데이터 타입 적용) 등의 핵심 단축키를 다루고 있습니다.
Ghidra 디컴파일러를 효과적으로 사용하는 방법은?
Window 메뉴에서 Decompile 창을 열고 함수를 선택하면 C 스타일 의사 코드가 자동 생성됩니다. Ctrl+L로 변수 타입을 변경하고(예: uint를 char*로), L로 변수 이름을 변경하며(예: param_1을 buffer로), Ctrl+Shift+E로 함수 시그니처를 수정할 수 있습니다.
Ghidra Python 스크립팅은 어떤 API를 지원하나요?
currentProgram으로 로드된 바이너리에 접근하고, getFunctionManager()로 함수를 순회하며, getBytes()로 메모리 내용을 읽고, getReferencesTo()로 특정 주소에 대한 교차 참조를 찾을 수 있습니다. 각 항목에 바로 사용 가능한 코드 스니펫이 포함되어 있습니다.
Ghidra에서 바이너리를 어떻게 패치하나요?
Ctrl+Shift+G로 어셈블리 코드를 입력하여 명령어를 패치합니다(nop, jmp, mov eax, 1 등). 우클릭 후 Patch Data를 선택하면 바이트 값을 직접 수정할 수 있습니다. 패치 후 File에서 Export Program, Binary를 선택하여 원본 형식으로 저장합니다.
Ghidra의 자동 분석 기능에는 무엇이 있나요?
Decompiler Parameter ID, Aggressive Instruction Finder, Create Address Tables 등의 옵션을 설정할 수 있는 Auto Analysis, 제어 흐름을 시각화하는 Function Graph, 모든 함수와 라벨을 검색하는 Symbol Table, 구조체/열거형을 관리하는 Data Type Manager, 섹션을 탐색하는 Program Trees 등을 제공합니다.
Ghidra에서 데이터 타입과 구조체는 어떻게 관리하나요?
T 키로 데이터 타입(byte, word, dword, string)을 적용합니다. Data Type Manager에서 새 구조체를 생성하고 C 헤더 파일을 파싱하여 구조체/열거형을 자동 생성할 수 있습니다. 메모리 영역에 우클릭 후 Data, Choose Data Type을 선택하여 복합 타입을 적용합니다.
C 헤더 파일을 Ghidra에 가져올 수 있나요?
네, File 메뉴에서 Parse C Source를 선택하여 .h 파일을 로드하면 됩니다. Ghidra가 파싱된 헤더에서 구조체, 열거형, typedef를 자동으로 생성합니다. 생성된 타입은 메모리 영역에 적용하거나 디컴파일러 뷰에서 가독성을 높이는 데 활용할 수 있습니다.
이 Ghidra 레퍼런스는 무료인가요?
네, 이 Ghidra 치트시트는 계정 등록 없이 완전 무료로 사용할 수 있습니다. 모든 내용이 브라우저에서 즉시 검색 및 카테고리 필터링과 함께 표시됩니다. liminfo.com의 무료 개발자 및 보안 레퍼런스 도구 모음의 일부입니다.