에이전트 + MCP
Claude Code·Codex·Cursor 등에 REA MCP 서버와 워크플로 지침(skill)을 등록합니다. 자연어로 묻고, 에이전트가 REA 도구를 호출합니다.
npx rea-agents setup
REA는 에이전트와 터미널에서 바이너리·앱·웹사이트·런타임 동작을 로컬에서 분석하는 하나의 MCP 서버이자 CLI입니다. 결론마다 그것을 뒷받침하는 증거와 한계를 함께 돌려줍니다.
$ npx rea-agents setup
Overview
소스 코드 없이 앱을 검사해 기능이 어떻게 동작하는지 설명하고, 증거를 보여 주고, 내 프로젝트용 구현까지 이어 갑니다. 사용 경로는 세 가지입니다.
Claude Code·Codex·Cursor 등에 REA MCP 서버와 워크플로 지침(skill)을 등록합니다. 자연어로 묻고, 에이전트가 REA 도구를 호출합니다.
npx rea-agents setup
MCP와 같은 워크플로·증거 계약을 씁니다. 호출마다 별도 프로세스이므로 결과를 파일로 저장해 다음 명령에 넘깁니다.
npm install --global rea-agents
조사 지침과 참고 문서만 설치합니다. MCP 등록이나 분석 엔진은 포함하지 않습니다.
npx skills add morluto/rea --skill reverse-engineer-anything
“Notes 앱의 검색은 어떻게 동작하지?”처럼 대상과 궁금한 기능을 묻습니다.
Hopper·Ghidra·IDA, JS 정적 분석, 브라우저 관찰 등 분석 도구로 관련 코드를 찾아 따라갑니다. 모두 로컬에서 실행됩니다.
에이전트가 결과로 후속 질문을 하고, 동작을 설명하고, 구현을 작성·테스트합니다.
Install & connect
setup은 변경할 경로와 내용을 미리 보여 주고 승인을 받은 뒤에만 파일을 씁니다. 기존 설정은 백업하고, 관련 없는 항목과 주석은 보존합니다.
npx rea-agents@latest setup. setup은 MCP 등록을 실행한 그 버전으로 고정(pin)합니다. Bun은 bunx rea-agents@latest setup.npm install rea-agents만 하면 현재 프로젝트의 node_modules/.bin에만 들어가 셸 PATH에서는 rea를 찾을 수 없습니다.Ask your agent
setup과 재시작이 끝났다면, 대상 앱과 궁금한 기능을 바꿔 넣어 그대로 물어보면 됩니다.
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
REA는 MCP prompts 기능으로 엔진 중립적인 조사 워크플로를 제공합니다. 도구를 대신 실행하지는 않고, 시작점이 될 도구 이름을 제안합니다. 클라이언트가 슬래시 명령 등으로 노출하는 방식은 클라이언트마다 다릅니다.
investigate_feature기능을 탐색부터 관련 함수의 증거까지 추적합니다. JS/Electron 디렉터리라면 바로 analyze_javascript_application으로 안내합니다.compare_application_versions배포된 두 아티팩트를 비교하고, 필요하면 정적·런타임 후속 조사를 붙입니다.verify_reconstruction복원한 코드의 사양을 보존된 비교 증거에 대어 검증합니다.trace_crash크래시 증상을 정적 경로와(선택적으로) 프로세스 캡처 증거에 연결합니다.audit_residual_unknowns아직 풀리지 않은 미지 항목과 그 해소 근거를 감사합니다.prepare_bounded_process_capture실행 전에 범위가 제한된 프로세스 관찰 실험을 설계합니다.What you can analyze
대상별로 REA가 돌려주는 정보와 추가로 필요한 도구입니다. 정적 JavaScript·.NET 분석은 앱을 실행하지 않고 파일만 읽습니다. 런타임 캡처는 내 사용자 권한으로 대상을 실행하거나 조작합니다.
CLI recipes
대상 경로를 입력하면 모든 레시피가 그 경로로 다시 쓰입니다. 경로는 절대 경로를 권장합니다. 기본 출력은 TOON이고, 파일로 저장할 때는 --json을 붙입니다.
Native analysis providers
깊은 네이티브 분석에는 Hopper·Ghidra·IDA 중 하나가 필요합니다. 정적 JavaScript와 .NET 분석은 엔진 없이 동작합니다. 상용 도구는 각자의 라이선스를 합법적으로 갖추어야 하며, REA는 라이선스·키를 제공하지 않습니다.
~/Applications)REA_IDA_MCP_CONFIG로 지정.idb/.i64가 아니라 원본 입력 바이너리를 엽니다export GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.1.4_PUBLIC export JAVA_HOME=/absolute/path/to/jdk-21 # java/javac가 PATH에 있으면 생략 rea doctor --provider ghidra --json rea setup
export REA_IDA_MCP_CONFIG=/absolute/path/to/ida-mcp.json export REA_ANALYSIS_PROVIDER=ida rea function /absolute/path/to/program main --json
자동 선택은 대상을 지원하는 엔진이 하나뿐일 때 그것을 씁니다. 여러 개라면 명시하세요. 우선순위는 --provider > REA_ANALYSIS_PROVIDER입니다. MCP에서는 open_binary에 provider_id를 넘깁니다.
rea providers --json # 사용 가능한 엔진과 지원 작업 rea capabilities --json export REA_ANALYSIS_PROVIDER=hopper # 기본 선호 엔진
| 오류 상태 | 의미와 대응 |
|---|---|
ambiguous | 지원 엔진이 여럿입니다. details.candidate_ids 중 하나를 골라 --provider로 지정합니다. |
provider_unavailable | 선택한 엔진이 준비되지 않았습니다. rea doctor --provider ID --json으로 진단합니다. |
| 큰 바이너리 시작 지연 | REA_GHIDRA_STARTUP_TIMEOUT_MS 또는 REA_HOPPER_STARTUP_TIMEOUT_MS로 시작 기한을 늘립니다. |
Doctor, update, uninstall
REA는 빠르게 변하고 릴리스마다 버그 수정이 잦습니다. doctor는 완전히 읽기 전용입니다. 옵션 없이 실행하면 전체를 감사하므로, 내 작업과 무관한 엔진 때문에 healthy가 false일 수 있습니다.
| 확인할 것 | 명령 |
|---|---|
| 정적 JS/Electron 분석 | rea analyze-javascript-application PATH --json을 바로 실행 |
| 분석 엔진 하나 | rea doctor --provider ghidra --json (hopper, ida) |
| 에이전트 등록 하나 | rea doctor --client claude_code --json |
| 설치된 skill | rea doctor --skill --json |
# npm/bun 전역 설치 rea update # npx로 에이전트 설정을 쓰는 경우 npx rea-agents@latest setup
rea update는 업데이트 후 범위가 지정된 setup 명령을 출력합니다. 그것을 실행해 변경을 승인하고 에이전트를 재시작하세요. Bun 전역 업데이트는 Bun 1.2.17 이상이 필요합니다.
rea uninstall rea uninstall --purge-data # ~/.rea 캐시·상태까지
REA가 소유한 에이전트 등록과 skill만 지웁니다. Hopper, Node.js, 증거 파일, 캡처, 다른 MCP 서버는 남습니다.
작업 완료. 결과에 부분 증거·경고·미해결 질문이 있을 수 있습니다.
완료하지 못함. 구조화된 출력에 잘못된 입력·권한·취소·타임아웃 등이 표시됩니다.
시그널 N으로 프로세스가 종료됨.
파이프로 jq에 넘길 때는 set -o pipefail을 켜야 REA의 실패 상태가 보존됩니다. 해결되지 않으면 REA 버전·대상 종류·재현 단계·오류 출력을 담아 이슈를 엽니다.
Responsible use
리버스 엔지니어링은 관할 지역이나 분석 대상 소프트웨어의 라이선스에 따라 제한될 수 있습니다. 필요한 권한을 확보하고 법·계약·이용약관을 지키는 책임은 사용자에게 있습니다.
REA는 대상을 로컬에서 분석합니다. 다만 에이전트가 받은 도구 결과는 해당 모델 제공자의 데이터 정책을 따릅니다.