일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ghidra
- foobar ctf
- fuzzing 기법
- fuzzing 개념
- easycrack
- system hacking
- pwnable
- pwnable.tw
- fuzzing 아키텍처
- simple-operation
- yawa
- format-string-bug
- easy aseembly
- downunder
- 기초 100문제
- reversing.kr
- hacking
- 환경 세팅
- Dreamhack
- 코드업
- rev-basic-0
- RAM 구조
- downunderctf
- rev-basic-1
- x64dbg
- Android Studio
- wargame
- 247ctf
- tjdmin1
- Reverse Engineering
- Today
- Total
Tjdmin1
[Tools] Ghidra vs IDA 본문
오늘은 Ghidra와 IDA 중 어떤 도구가 더 나은 선택인지에 대해 살펴보겠습니다
1. Ghidra & IDA 소개
리버스 엔지니어링을 시작하거나 보안 분석을 진행하다 보면 반드시 만나게 되는 두 가지 대표적인 도구가 있습니다. 바로 Ghidra와 IDA Pro입니다. 이 두 툴은 바이너리 분석을 위한 정적 디스어셈블러 및 디컴파일러로, 전 세계 리버스 엔지니어와 보안 연구자들이 널리 사용하고 있습니다.
🔍 Ghidra란?
Ghidra는 미국 국가안보국(NSA)에서 개발한 오픈소스 리버스 엔지니어링 도구입니다.
- ✅ 무료로 제공되며, 누구나 사용 가능
- ✅ 다양한 플랫폼 지원 (Windows, macOS, Linux)
- ✅ 풍부한 디컴파일 기능과 스크립팅 지원 (Java / Python)
- ✅ 다양한 CPU 아키텍처와 파일 포맷을 지원
Ghidra는 무료이면서도 IDA에 뒤지지 않는 기능을 제공하기 때문에, 상용 소프트웨어를 구입하기 어려운 연구자나 학생들에게 특히 인기 있는 도구입니다.
🔍 IDA Pro란?
IDA Pro는 Hex-Rays에서 개발한 상용 리버싱 도구로, 리버스 엔지니어링 분야의 사실상 표준이라고 할 만큼 오랜 시간 동안 입지를 다져온 도구입니다.
- ✅ 오랜 역사와 광범위한 사용자층
- ✅ 다양한 바이너리 포맷 및 아키텍처 지원
- ✅ 플러그인 및 커스터마이징 생태계가 매우 풍부
- ✅ 상용 디컴파일러(추가 구매)인 Hex-Rays 디컴파일러 제공
비록 유료이긴 하지만, 기능의 깊이나 확장성 면에서 많은 기업과 전문가들이 여전히 선호하는 도구입니다.
2. Ghidra vs IDA 기능 비교
Ghidra와 IDA는 모두 강력한 리버스 엔지니어링 도구이지만, 실제로 사용해보면 세부적인 차이들이 꽤 많습니다.
이번에는 주요 기능을 기준으로 두 툴을 비교해보겠습니다.
🔧 ① 디컴파일 기능
- Ghidra:
자체 내장된 C 스타일 디컴파일러가 기본 제공됩니다.
함수의 흐름과 변수 추적이 비교적 잘 되며, UI 상에서 디컴파일 결과와 어셈블리 코드를 동시에 확인할 수 있습니다. - IDA Pro:
디컴파일 기능은 Hex-Rays 디컴파일러를 별도로 구매해야 사용할 수 있습니다.
디컴파일 결과의 품질이 매우 뛰어나며, 가독성이 Ghidra보다 더 좋다는 평가도 많습니다.
📌 결론:
초기 접근성은 Ghidra가 우세, 하지만 정밀 분석에선 IDA + Hex-Rays 조합이 더 우세
🧩 ② 플러그인 / 확장성
- Ghidra:
오픈소스로 제공되어 자유롭게 플러그인 개발 및 수정이 가능합니다.
Java 기반이 기본이며 Python 스크립트도 지원합니다. - IDA Pro:
매우 방대한 플러그인 생태계가 존재하며, 대부분 Python(IDAPython)이나 IDC 기반으로 작성됩니다.
상용 툴답게 문서화가 잘 되어 있고 지원 커뮤니티도 활발합니다.
📌 결론:
확장성은 IDA가 더 풍부하지만, Ghidra도 오픈소스라는 장점 덕분에 유연하게 활용 가능
🖥️ ③ UI/UX 및 사용성
- Ghidra:
인터페이스가 처음엔 다소 복잡하고 무거운 느낌을 줄 수 있습니다.
하지만 프로젝트 단위로 작업을 관리하고, 다양한 뷰를 병렬로 띄울 수 있어 고급 분석에는 유리합니다. - IDA Pro:
전통적인 UI로 직관적이고 빠르게 분석을 시작할 수 있습니다.
단축키와 고급 기능 활용에 익숙해지면 생산성이 매우 높아집니다.
📌 결론:
입문자는 IDA의 UI에 더 빠르게 적응할 수 있으나, Ghidra도 익숙해지면 매우 강력함
🧠 ④ 스크립팅 및 자동화
- Ghidra:
Java와 Python을 모두 지원하며, Ghidra API를 통한 정적 분석 자동화가 가능
Ghidra Script Manager로 편하게 스크립트 실행 가능 - IDA Pro:
IDAPython을 통해 거의 모든 동작을 자동화할 수 있음
조건분기, 루프 탐지, 함수명 자동화 등 많은 리버서들이 사용하는 방식
📌 결론:
스크립팅 성능은 둘 다 강력하지만, Python 친화적인 IDA가 더 선호되는 경우가 많음
3. Ghidra와 IDA, 어떤 툴을 선택해야 할까?
두 도구 모두 리버스 엔지니어링 분야에서 널리 사용되고 있으며, 각각의 장단점이 분명합니다.
따라서 자신의 목적, 환경, 예산에 맞게 선택하는 것이 중요합니다.
🎓 입문자 / 학생이라면: Ghidra 추천
- ✅ 무료로 사용할 수 있으며, 기능이 매우 강력함
- ✅ 디컴파일러가 기본 탑재되어 있음
- ✅ 오픈소스 기반이라 내부 구조까지 분석 가능
- ✅ 설치도 간편하고 다양한 운영체제를 지원
📌 학습용, CTF, 연습용 리버싱에는 충분히 훌륭한 선택
💼 실무 보안 분석가/기업 연구자라면: IDA Pro 추천
- ✅ Hex-Rays 디컴파일러의 고품질 결과 제공
- ✅ 광범위한 플러그인 및 사용자층 확보
- ✅ 대형 바이너리 분석, 정밀 분석에 특화
- ✅ 오랜 기간 검증된 안정성과 성능
📌 대규모 프로젝트, 상용 제품 분석, 자동화 분석 환경 구축에 매우 적합
3. Ghidra와 IDA를 직접 써보고 느낀 점
최근에는 IDA에서 Ghidra로 넘어와 사용해보고 있는데요, 솔직히 디컴파일 속도만 조금 더 개선된다면, 디컴파일 결과의 품질은 오히려 Ghidra가 더 뛰어나다고 느꼈습니다.
함수 구조나 변수 추적도 깔끔하게 잘 되고, 복잡한 로직도 꽤 읽기 쉽게 표현해주는 편입니다.
다만, 디버깅 측면에서는 IDA가 더 편리하다고 느꼈습니다. Ghidra는 UI/UX가 다소 불편하게 구성되어 있고, 불필요한 창들이 많아 디컴파일 창을 집중해서 보기 어려운 구조입니다.
실전 디버깅에선 Ghidra보다는 IDA 쪽이 훨씬 직관적이고 효율적이었습니다.
또 하나 팁을 드리자면,Ghidra는 사용자 시스템에 설치된 로컬 Python 인터프리터를 그대로 사용하기 때문에, 별도의 가상환경(venv)을 구성해 사용하는 걸 추천드립니다.
+) Binary Ninja도 사용해봤는데, 디컴파일 품질은 약간 아쉬운 편이지만 플러그인 관리 측면에서는 매우 간편했습니다.
이번 포스팅은 여기서 마치겠습니다.
읽어주셔서 감사합니다!
'Reverse engineering' 카테고리의 다른 글
[Ghidra & x64dbg] Gx64Sync (0) | 2025.05.02 |
---|---|
[reversing.kr] Easy Crack (0) | 2025.03.13 |
[CodeEngn] RCE Basic L01 (0) | 2025.03.11 |
[Dreamhack] simple-operation (1) | 2024.07.03 |
[Dreamhack] rev-basic-1 (1) | 2024.07.03 |