컴파일된 코드를 다시 읽는 도구로, 숨겨진 취약점을 파헤칩니다
바이너리 파일을 열어 그 안의 명령어를 사람이 읽을 수 있는 형태로 바꾸고, 실행 흐름을 그래프로 그려 봅니다. Ghidra는 미국 국가안보국(NSA) 연구국이 만든 소프트웨어 역공학 프레임워크로, 컴파일된 코드를 분석하는 데 필요한 도구들을 한데 모은 것입니다. 이 도구를 쓰면 악성 코드나 시스템 내부 구조를 파악해 잠재적 취약점을 찾는 작업이 가능해집니다.
NSA의 사이버 보안 임무에서 나온 도구
Ghidra는 복잡한 역공학 작업에서 발생하는 규모 확장 문제와 팀 협업 문제를 해결하기 위해 만들어졌습니다. NSA는 이 도구를 활용해 악성 코드 분석과 네트워크 및 시스템 취약점 이해를 위한 깊은 통찰을 얻는 데 적용해 왔습니다. 사용자는 Windows, macOS, Linux 환경에서 컴파일된 코드를 분석할 수 있으며, 인터랙티브 모드와 자동화 모드 모두 지원합니다. 또한 Java나 Python으로 자체 스크립트와 확장 기능을 개발할 수 있어 분석 워크플로우를 맞춤으로 구성할 수 있습니다.
분석과 개발을 위한 핵심 기능
이 프레임워크는 디스어셈블리, 어셈블리, 디컴파일, 그래프 생성, 스크립팅 등 다양한 기능을 제공합니다.
- 다양한 분석 기능 디스어셈블리부터 디컴파일, 그래프 생성까지 역공학에 필요한 핵심 도구들을 포함합니다.
- 확장성 Java와 Python으로 사용자 정의 스크립트와 확장 컴포넌트를 개발할 수 있습니다.
- 개발 환경 연동 Eclipse와 Visual Studio Code를 지원하여 스크립트 작성과 도구 자체 개발을 돕습니다.
설치와 빌드 과정
공식 릴리스를 설치하려면 JDK 25 64-bit를 설치한 후, 릴리스 파일에서 ghidra_<version>_<release>_<date>.zip 파일을 다운로드해야 합니다. 압축을 풀고 ./ghidraRun 명령을 실행하면 Ghidra를, ./support/pyghidraRun을 실행하면 PyGhidra를 시작할 수 있습니다. 소스에서 직접 빌드하려면 JDK 25, Gradle 9.1.0 이상, Python 3.9~3.14, 그리고 운영체제에 맞는 컴파일러(GCC/Clang 또는 MSVC)가 필요합니다. 빌드 명령은 gradle buildGhidra이며, 생성된 파일은 build/dist/ 폴더에 위치합니다.
사용 전 반드시 확인할 보안 경고
이 공지를 읽지 않고 사용하면 예상치 못한 보안 위험에 노출될 수 있습니다. 또한 Ghidra 개발에 참여하거나 버그 수정, 기능 추가를 원한다면 기여자 가이드를 참고해야 합니다. 이 도구는 전문적인 역공학 지식이 필요한 분야에 사용되므로, 초보자가 무분별하게 실행 파일을 분석할 경우 의도치 않은 결과를 초래할 수 있으니 주의가 필요합니다.