
pablodiazjorge/rea-lab

Windows에서 AI 에이전트로 리버스 엔지니어링하기: rea와 Ghidra로 에이전트가 사용하는 도구를 검증하고 측정하고 시각화하기

pablodiazjorge/rea-lab

rea (morluto/rea) 6.4.0과 Ghidra 12.1.4를 기반으로 구축된 Windows 랩. 실제 Windows 머신에서 rea의 Ghidra provider를 검증하고(업스트림 PR 3건 병합됨), 재현 가능한 벤치마크와 rea가 코딩 에이전트에 무엇을 더하는지에 대한 사전 등록 연구를 제공하며, 라이브 증거 창을 갖춘 Claude Code mod(rea-casebook)를 배포하고, 미리 준비된 연습 챌린지와 writeup을 문서화한다. 범위는 직접 빌드한 바이너리, Ghidra 연습, 그리고 허가된 crackme/CTF로 제한된다. 상용 소프트웨어, 온라인 게임, DRM은 범위 밖이며, 동적 분석은 네트워크 접근이 없는 Windows Sandbox 내부에서만 실행된다.
설치 방법은 원본 출처를 확인하세요.
rea gives coding agents (Claude Code, Codex, Cursor and others) MCP tools to reverse engineer software, from app behaviour down to native binaries. Three gaps stand out on Windows:
This lab works on those three gaps: it contributes Windows verification upstream, builds a reproducible benchmark with known answers, and ships a Claude Code mod that shows the agent's evidence live.
There are no dates: each phase closes when it meets its exit criteria.
| Phase | Goal | Status | |---|---|---| | F0 | Public foundations: rules, decisions and checks | done | | F1 | Reproducible environment and per-project MCP registration | done | | F2 | Contributions to rea from a real Windows machine | ongoing | | F3 | Seeded challenges with known answers and first writeups | in progress | | F4 | Benchmark and study 1: what rea adds to an agent | done | | F5 | Claude Code mod with a live evidence pane | done | | F6 | Second upstream wave, improved skill, second agent | planned | | F7 | Dynamic analysis inside Windows Sandbox | optional |
rea doctor --provider ghidra passes every check, including the native authority self-test that fails on other machines (morluto/rea#1701).WinHelloCPP.exe, an exercise shipped with Ghidra, analysed in about 25 s (6 segments, 388 functions, 254 strings), with no leftover processes or temporary files.evidence_id values, a journal per session and Markdown or artifact exports.| Path | Content |
|---|---|
| AGENTS.md | Instructions for coding agents (CLAUDE.md imports it) |
| docs/adr/ | Architecture decision records |
| docs/guides/ | How-to guides, such as the portable per-project MCP registration |
| writeups/ | Investigations with their sanitised Evidence: WinHelloCPP, Wallace v1 against v2, c02-xor at -O0 and -O2, study 1 |
| challenges/ | Seeded practice challenges with known answers, built reproducibly |
| bench/ | Benchmark harness: isolated claude -p runs, deterministic graders, rea's own evaluation code, paired statistics |
| tools.json | Tool versions, download URLs and SHA-256 hashes |
| scripts/setup.mjs | Downloads, verifies and extracts the tools into tools/ |
| scripts/rea-mcp.mjs, .mcp.json | rea's MCP server, registered for this project only |
| .claude/settings.json | rea tools allowed; tools that run a target or a device denied |
| scripts/check.mjs | Repository checks: personal data, bilingual parity, links, style |
| env.ps1 | rea, Ghidra and clang for the current PowerShell session |
| .github/workflows/ | CI: checks on every push, real Ghidra on Windows every week |
| tools/, targets/, repos/ | Local tools, analysis targets and nested repositories (not in git) |
Requirements: Windows 10 or later (x64) and Node.js 22.19 or later. npm run setup downloads Ghidra 12.1.4, Temurin JDK 21 and llvm-mingw (about 920 MB), verifies every SHA-256 before extracting and keeps everything inside tools/: nothing is installed system-wide.
npm ci
npm run setup
. .\env.ps1
rea doctor --provider ghidra --json
Then open Claude Code in this folder and approve the rea server from .mcp.json: the agent gets rea's tools for this project only, with no personal paths in the configuration. The first Ghidra-backed query imports and analyses the binary, which takes about half a minute for a small executable.
Only binaries built here, the exercises that ship with Ghidra, and crackmes or finished CTF challenges whose rules allow writeups. Third-party binaries are analysed statically and never run on the host; anything dynamic happens inside Windows Sandbox without network access. Commercial software, online games, DRM and anything related to the author's employer are out of scope. Details and legal basis in ADR 0010.
Every hard-to-reverse decision has a short record in docs/adr: repository layout, language policy, the portable MCP launcher, pinned versions, target policy, benchmark isolation and how the lab contributes to rea.
Code is released under the MIT License. Text (READMEs, guides, ADRs, writeups) and benchmark results are released under CC BY 4.0.