REA(Reverse Engineer Anything)는 Claude Code 같은 코딩 에이전트를 Ghidra·Hopper·IDA 같은 분석 도구에 이어 주는 리버스 엔지니어링 MCP 서버입니다. 소스 코드가 없는 실행 파일을 살펴보려면 디컴파일러를 따로 띄우고 결과를 복사해 붙여야 했는데, REA를 쓰면 에이전트가 분석 도구를 직접 호출하고 근거가 붙은 결과를 돌려받습니다. 제 PC(Windows 11)에 6.5.0을 Ghidra 12.1.4와 함께 설치해 클라이언트 네 곳에 연결한 과정을 정리했습니다.
먼저 짚어 둘 것이 있습니다. REA의 면책 조항(DISCLAIMER.md)은 이 도구를 보안 연구, 악성코드·침해 사고 분석, 취약점 연구와 조율된 공개, CTF와 교육, 상호운용성 확보, 소프트웨어 보존, 그리고 본인이 소유하거나 분석 권한을 받은 소프트웨어의 디버깅·감사에 쓰라고 정해 두었습니다. DRM·라이선스 검사·안티치트 우회, 게임 치트 제작, 허가 없는 인증 우회, 독점 소프트웨어 복제는 돕지 않는다고 명시합니다. 리버스 엔지니어링은 나라나 소프트웨어 라이선스에 따라 제한될 수 있으니, 이 글도 자기 프로그램·악성코드 분석·CTF 같은 합법적 용도만 다룹니다.

REA가 하는 일
공식 배포처는 GitHub의 morluto/rea, 웹사이트 rea.tools, npm 패키지 rea-agents 세 곳입니다. README는 비슷한 이름의 저장소나 복사된 README로는 공식 배포 파일인지 확인할 수 없다고 경고합니다. 라이선스는 MIT입니다.
흐름은 단순합니다. 에이전트가 MCP로 REA를 부르면 REA가 분석 도구로 대상을 검사하고 관련 코드를 추적해 결과와 근거를 돌려줍니다. 에이전트는 그 결과로 동작을 설명하거나 코드를 쓰고 테스트합니다. 분석은 로컬에서 돌고, 결과에는 결론마다 근거와 한계가 붙습니다. 제 PC의 doctor 출력 기준으로 6.5.0에는 MCP 도구 207개, CLI 명령 153개, MCP 프롬프트 6개가 들어 있습니다.

위 그림은 README에 실린 것으로, Hopper 안에서 REA 분석 브리지가 네이티브 바이너리를 검사하는 화면입니다.
분석할 수 있는 대상(일부)
| 대상 | REA가 돌려주는 것 | 필요한 것 |
|---|---|---|
| 네이티브 바이너리 | 의사 코드, 어셈블리, 문자열, 심볼, 호출, 참조 | Hopper, Ghidra, IDA 중 하나 |
| JavaScript / Electron 앱 | 모듈, 임포트, 소스 맵, 라우트, IPC | Node.js와 npm |
| .NET 어셈블리 | 메타데이터, CIL 명령, 네이티브 의존성 | 별도 도구 없음(정적 검사) |
| Go·Rust 바이너리 | 컴파일러 버전, 모듈·크레이트, 의존성 | REA 내장 검사 |
| Android APK | 매니페스트, 클래스, 디컴파일된 메서드 | 헤드리스 JADX와 전체 JDK |
| WASM | 섹션, import/export, WAT | WABT 1.0.42 |
| SQLite 데이터베이스 | 테이블, 열, 인덱스, 행 | Node.js 24.15 이상 |
| 웹사이트 | 페이지 구조, 스크립트, 네트워크 관찰 | 크롬 계열 브라우저 |
펌웨어, 패킷 기록, 논리 신호 기록 같은 대상은 Linux에서만 쓸 수 있는 도구가 필요합니다. 정적 JavaScript와 .NET 검사는 파일을 읽기만 하고 앱을 실행하지 않습니다.
준비물
- Node.js 22.x(22.19 이상), 24.x(24.11 이상) 또는 26 이상과 npm. 제 PC는 24.16.0입니다.
- Ghidra 12.1.x와 64비트 전체 JDK 21 이상. 설치 문서는 Ghidra 12.1.4와 JDK 21로 검증했다고 적고 있습니다. JRE가 아니라 JDK여야 하고, JDK의 플랫폼이 PC와 같아야 합니다.
- 환경 변수
GHIDRA_INSTALL_DIR에 Ghidra 압축을 푼 폴더를 지정합니다. JDK가 PATH에 없으면JAVA_HOME도 넣습니다.
# 설치 문서의 PowerShell 예시(현재 창에만 적용)$env:GHIDRA_INSTALL_DIR = "C:\tools\ghidra_12.1.4_PUBLIC"$env:JAVA_HOME = "C:\Program Files\Java\jdk-21"# 계속 쓰려면 사용자 환경 변수로 저장[Environment]::SetEnvironmentVariable("GHIDRA_INSTALL_DIR", "C:\tools\ghidra_12.1.4_PUBLIC", "User")
에이전트에 연결하기
setup은 기존 설정 파일을 백업한 뒤 REA MCP 서버와 버전에 맞는 작업 지침(스킬)을 추가합니다. 바로 적용하지 말고 --dry-run으로 무엇이 바뀌는지 먼저 봅니다. 이 옵션은 읽기만 하는 계획을 돌려줍니다.
npx -y rea-agents@latest setup --client claude_code --dry-runnpx -y rea-agents@latest setup --client claude_code
계획을 확인하고 두 번째 명령으로 승인한 뒤 에이전트를 다시 시작합니다. 같은 방법으로 Claude Desktop, GitHub Copilot CLI, VS Code에도 연결했습니다. 클라이언트 ID는 아래와 같습니다.
| 클라이언트 | --client 값 |
|---|---|
| Claude Code | claude_code |
| Claude Desktop | claude_desktop |
| GitHub Copilot CLI | copilot_cli |
| VS Code | vscode |
설치 문서에 따르면 Codex, Cursor, Gemini CLI 등을 포함해 클라이언트 ID 17개가 setup 계획을 받습니다. Claude Code에는 reverse-engineer-anything 스킬이 함께 깔리고, claude mcp list에서 rea 서버가 Connected로 보입니다.
doctor로 점검하기

rea doctor는 설정을 읽기만 하는 진단 명령입니다. 전역 설치 없이 npx로 돌려도 됩니다.
npx -y rea-agents@latest doctor --client claude_code --provider ghidra
| 확인할 것 | 명령 |
|---|---|
| 분석 엔진 하나 | rea doctor --provider ghidra --json |
| 에이전트 등록 하나 | rea doctor --client claude_code --json |
| 설치된 작업 지침 | rea doctor --skill --json |
제 결과는 healthy: true였습니다. Ghidra 12.1.4, JDK 21.0.11, 윈도용 네이티브 디컴파일러가 모두 통과했고, 네 클라이언트 등록이 전부 rea-agents@6.5.0으로 맞춰져 있었습니다. Hopper·IDA·JADX는 없다고 나오지만 참고 항목이라 Ghidra 분석을 막지는 않습니다.
사용 예시
정적 JavaScript 분석은 네이티브 엔진 없이도 됩니다. 직접 만든 Electron 앱의 빌드 결과물이 어떤 모듈로 묶였는지 볼 때 README의 CLI 예시를 그대로 쓸 수 있습니다.
npx -y rea-agents@latest analyze-javascript-application "D:/apps/my-app" --json
에이전트에게는 "내가 만든 이 exe에서 설정 파일을 읽는 함수를 Ghidra로 찾아서 의사 코드와 근거를 보여 줘"나 "이 CTF 문제 바이너리의 입력 검사 루틴을 추적해 줘"처럼 대상과 질문을 함께 줍니다.

README의 사례 세 가지도 참고가 됩니다. DX-Ball은 사운드 패닝 계산을 C로 다시 구현해 원본 x86 대비 3,205개 테스트를 통과했고, TH04는 PC-98 게임의 16비트 탄막 각도 계산을 복원했습니다. 나머지 하나는 Electron 앱의 클립보드 처리를 렌더러에서 메인 프로세스까지 추적한 사례입니다.
주의할 점
- Windows에서 Ghidra를 쓰는 경로는 README에 "실험적 Windows Ghidra 지원"으로 표시돼 있습니다.
- npx로 등록하면 설정에 버전이 고정돼 들어갑니다(제 경우
rea-agents@6.5.0). 새 버전을 쓰려면npx rea-agents@latest setup을 다시 실행하고 에이전트를 재시작해야 합니다. - 큰 바이너리는 Ghidra 시작이 오래 걸릴 수 있습니다. README는
REA_GHIDRA_STARTUP_TIMEOUT_MS로 제한 시간을 늘리라고 안내합니다. - 분석은 로컬에서 하지만, 도구 결과는 에이전트를 거쳐 모델 제공자에게 전달됩니다. 업로드되면 안 되는 파일인지 먼저 따져 봅니다.
- IDA Pro, Hopper, JEB 같은 상용 도구는 정식 라이선스가 있어야 합니다. REA는 어떤 도구의 라이선스도 주지 않습니다.
비슷한 도구와 차이
| 도구 | 성격 | REA와 다른 점 |
|---|---|---|
| Ghidra 단독 | NSA가 공개한 무료 디컴파일러 | 사람이 GUI로 직접 분석. REA는 이걸 엔진으로 씀 |
| Ghidra·IDA 전용 MCP 플러그인 | 분석 도구 하나를 에이전트에 연결 | 엔진 하나만 다룸. REA는 JS·.NET·APK 등 여러 대상을 한 서버에서 |
| Agent-Reach, MarkItDown | 인터넷 글 읽기, 문서 변환 | 바이너리 분석과는 무관한 입력 도구 |
공식 사이트: https://rea.tools/ko/ · 저장소: https://github.com/morluto/rea
'claude' 카테고리의 다른 글
| MarkItDown 사용법: PDF·워드·엑셀 파일을 마크다운으로 바꾸는 마이크로소프트 도구 (0) | 2026.10.18 |
|---|---|
| Agent-Reach 설치와 설정: Claude Code에 유튜브 자막·RSS 읽기를 붙이는 CLI (0) | 2026.10.18 |
| humanizer 스킬 사용법: AI가 쓴 글 티를 26가지 패턴으로 지우고 한국어 규칙 붙이기 (0) | 2026.10.18 |
| agency-agents 설치와 사용법: Claude Code 에이전트 282개 중 28개만 고른 이유 (0) | 2026.10.18 |
| awesome-design-md 사용법: 브랜드 84곳 DESIGN.md를 Claude Code 스킬로 쓰기 (0) | 2026.10.17 |































