REA(Reverse Engineer Anything): Claude Code / Codex에서 리버스 엔지니어링 스킬 설치하고 사용하기
REA는 GitHub의 morluto/rea입니다. MIT 라이선스 MCP 서버, CLI, 그리고 reverse-engineer-anything 에이전트 스킬로 구성되어 Claude Code, Codex, Cursor 같은 클라이언트가 바이너리, Electron 앱, .NET 어셈블리, APK, 웹사이트를 로컬에서 증거와 함께 검사할 수 있게 합니다. 여기에는 검증된 설치 절차, 첫 명령, 그리고 법적 경계가 실제로 어디에 있는지 담았습니다.
REA 한눈에 보기
- 프로젝트 하나에 세 조각: `rea-agents` npm 패키지가 `rea` CLI, 로컬 MCP 서버, 그리고 어떤 대상에 어떤 도구를 쓸지 에이전트에게 알려 주는 `reverse-engineer-anything` 스킬을 함께 제공합니다.
- 설치는 검토 후 승인하는 명령 하나입니다: `npx rea-agents setup`이 기록할 설정 경로, 백업, 스킬 설치 위치를 정확히 나열한 뒤 승인을 기다립니다. 승인하기 전에는 아무것도 기록되지 않습니다.
- Claude Code, Codex, Cursor에는 각각 네이티브 경로도 있습니다. `/plugin` 프롬프트 두 번, `codex plugin` 명령 두 번, 또는 Cursor Marketplace 플러그인입니다. setup은 28개 클라이언트를 직접 설정할 수 있습니다.
- REA는 샌드박스가 아니며 무엇이 합법인지 판단하지 않습니다. 사용자 권한으로 실행되고, 대상은 분석 권한이 있어야 하며, 프로젝트 자체의 면책 조항이 지원을 거부하는 용도를 명시합니다.
morluto/rea — README
출처: github.comchecked 2026-11-13
docs/getting-started/installation.md
출처: github.comchecked 2026-11-13
.agents/skills/reverse-engineer-anything/SKILL.md
출처: github.comchecked 2026-11-13
docs/getting-started/cli.md
출처: github.comchecked 2026-11-13
rea-agents — npm registry
출처: registry.npmjs.orgchecked 2026-11-13
DISCLAIMER.md + SECURITY.md
출처: github.comchecked 2026-11-13
dsh-rea — DeepSeek Harness directory
출처: deepseekharnessplugins.comchecked 2026-11-13
dsh-reverse-skill — DeepSeek Harness directory
출처: deepseekharnessplugins.comchecked 2026-11-13
이 페이지의 모든 명령, 클라이언트 ID, 버전, 숫자는 2026-11-13에 위 출처에서 읽은 것입니다: 저장소 README, docs/getting-started/installation.md, 함께 배포되는 SKILL.md, docs/getting-started/cli.md, DISCLAIMER.md와 SECURITY.md, 그리고 npm 레지스트리. 저장소 정보는 같은 날 GitHub API에서 가져왔습니다: stars 455,720, forks 111,916, 생성 2026-04-14; npm 최신 릴리스 `rea-agents` 6.9.0, 게시 2026-11-12. star 수는 매일 변하므로 날짜가 붙은 스냅숏으로 보십시오. 이 페이지는 성능 수치를 전혀 인용하지 않습니다. 확인한 README와 문서에 벤치마크 결과가 없기 때문입니다.
REA는 실제로 무엇인가
REA는 Reverse Engineer Anything의 약자입니다. morluto가 만든 서드파티 오픈소스 프로젝트로 MIT 라이선스이며, 위치는 github.com/morluto/rea, 사이트는 rea.tools입니다. Anthropic, OpenAI, Cursor의 제품이 아니고 디컴파일러도 아닙니다. 코딩 에이전트가 디컴파일러와 정적 파서를 구동하고, 찾은 것을 설명하게 해 주는 계층입니다.
배포물은 `rea-agents` npm 패키지입니다. `rea` 명령, 로컬 MCP 서버, 그리고 `reverse-engineer-anything` 스킬을 제공합니다. 이 스킬은 워크플로 문서로, 먼저 대상을 분류하고(ASAR/Electron, 아카이브, APK, .NET, 펌웨어, 네이티브 바이너리, 브라우저 페이지, 캡처) 모든 결론을 Evidence에 묶어 두라고 에이전트에게 지시합니다. 분석은 사용자 머신에서 실행되고, 에이전트가 도구 결과를 받으며, 그 모델 제공자가 자체 데이터 정책을 적용합니다.
깊은 네이티브 분석은 직접 준비해야 합니다: Hopper, Ghidra, IDA, Kuna. setup은 별도 승인 후 Hopper를 설치할 수 있고, 기존 Ghidra, IDA, Kuna를 재사용합니다. 정적 JavaScript/Electron과 .NET 검사에는 네이티브 엔진이 전혀 필요 없습니다. 그래서 Electron 앱에 대한 첫 테스트가 REA가 워크플로에서 자리를 차지할지 가장 싸게 확인하는 방법입니다.
- npm 릴리스
- rea-agents 6.9.0
- 라이선스
- MIT
- GitHub 스타
- 455,720
- 저장소 생성일
- 2026-04-14
무엇을 볼 수 있는가
README의 대상 표는 39줄입니다. 여기서는 설치 여부를 결정하는 부분만 담았습니다. 마지막 열은 문서가 실제로 제시하는 요구 사항이며, 대부분의 행은 Node.js 외에 아무것도 필요로 하지 않습니다.
| 대상 | 돌려받는 것 | 필요 사항 |
|---|---|---|
JavaScript / Electron | 모듈, 임포트, source map, 라우트, IPC 경계, 네이티브 애드온 — 앱을 실행하지 않는 정적 분석. | Node.js + npm (Linux에서는 procps의 `ps`) |
Native binaries | 의사 코드, 어셈블리, 문자열, 심볼, 호출, 상호 참조. | Hopper, Ghidra, IDA, Kuna |
.NET assemblies | 메타데이터, CIL 명령, 선언된 네이티브 의존성, 빌드 간 비교. | 추가 도구 없음(정적 전용) |
Android APK | Manifest 선언, 클래스, 디컴파일된 메서드와 참조, APK 서명 정보. | 헤드리스 JADX + 전체 JDK(서명에는 아무것도 필요 없음) |
Websites / captures | 페이지 구조, 스크립트, 네트워크 관찰, 요청 시 스크린숏, HAR 및 SAZ 캡처. | Chrome 계열 브라우저(캡처는 HAR 또는 SAZ) |
Go / Rust / PE / WASM | Go 빌드 정보, Rust cargo-auditable 크레이트, PE 임포트와 인증서, ELF 노트, WASM, 하드닝 플래그. | 추가 도구 없음(정적 전용) |
Archives / firmware | ZIP/APK/IPA/MSIX/DMG, Godot PCK, UnityFS, wxapkg의 구성원 목록과 추출, 펌웨어 영역. | 펌웨어의 경우 Linux의 Binwalk 또는 Unblob |
GGUF / safetensors | GGUF 및 safetensors 메타데이터, 텐서 선언, 선택적 전체 파일 해시. | 추가 도구 없음(정적 전용) |
Release exposure | 안정적인 검사 ID, 상태, 개선 조치를 갖춘 릴리스 노출 보고서: 배포된 source map, Electron fuse, 자격 증명 표식. | 추가 도구 없음(정적 전용) |
두 경계는 두 번 읽을 만합니다. 정적 검사는 파일을 파싱하고 대상을 실행하지 않습니다. 반면 런타임 캡처, 브라우저 시나리오, 기기 워크플로는 실제로 실행하거나 상호작용하며 사용자 권한으로 동작합니다. 그리고 모든 결과에는 고유한 한계와 미지수가 붙습니다. 문서는 릴리스 노출 보고서가 깨끗하다고 해서 애플리케이션이 안전한 것은 아니라고 분명히 밝힙니다.
설치: 승인하는 명령 하나, 그리고 클라이언트별 경로
setup은 기본적으로 대화형입니다. 지원 클라이언트를 나열하고, 건드릴 정확한 파일과 백업을 보여 주고, 기록 전에 묻습니다. npm 다운로드 승인과 REA 자체 승인은 별개의 프롬프트이므로 npm을 승인해도 설정 변경을 승인한 것이 아닙니다.
1. 안내형 setup — 지원되는 모든 클라이언트에 사용 가능
PATH에 Node.js와 npm이 있는 상태에서 실행합니다. 클라이언트를 선택하고(기존 REA 등록은 미리 선택되고 새로 감지된 것은 선택되지 않음), 계획을 읽고 승인합니다. 그런 다음 완료 메시지에 나온 에이전트를 완전히 재시작하십시오. 실행 중인 클라이언트가 자기 등록을 덮어쓸 수 있습니다. 스크립트에서는 `--client <id>`를 붙이고 먼저 `--dry-run --json`으로 읽기 전용 계획을 받으십시오.
명령
npx rea-agents setupnpx rea-agents setup --client claude_code --dry-run --json2. Claude Code: /plugin 프롬프트 두 번, setup 실행 없음
REA의 npm 패키지는 Claude Code 플러그인이기도 합니다. 저장소를 마켓플레이스로 추가한 뒤 `rea@rea`를 설치하십시오. 플러그인은 `rea setup`을 실행하지 않으므로 제공자 설정(Ghidra/IDA 경로)은 여전히 아래 섹션에서 가져와야 하고, `rea doctor`는 플러그인을 `missing`으로 보고합니다. 대신 `/plugin`과 `/mcp`로 확인하십시오. 한 클라이언트에는 플러그인이나 setup 등록 중 하나만 사용하십시오. 둘 다 하면 `rea` 서버가 두 개 뜹니다.
명령
/plugin marketplace add morluto/rea/plugin install rea@rea3. Codex: 같은 플러그인, codex 명령 두 번
같은 npm 패키지가 `.codex-plugin` 매니페스트를 담고 있습니다. 마켓플레이스를 추가한 뒤 `rea@rea`를 설치하십시오. 클라이언트 PATH에 독립 실행형 `node`가 필요합니다. Claude Code와 마찬가지로 플러그인 설치는 `rea doctor`에 보이지 않으므로 `codex plugin list`로 확인하십시오.
명령
codex plugin marketplace add morluto/reacodex plugin add rea@rea4. Cursor: setup 등록 또는 Marketplace 플러그인
`rea setup --client cursor`는 `~/.cursor/mcp.json`과 setup이 관리하는 스킬을 기록합니다. Cursor의 Marketplace에도 이 저장소가 플러그인으로 등록되어 있으며, 스킬과 공개된 버전에 고정된 `rea` MCP 서버를 함께 묶습니다. 그 경로는 Git 체크아웃이며 `rea`를 PATH에 넣지 않습니다. 둘 중 하나만 고르십시오.
명령
npx rea-agents setup --client cursor5. 스킬만 — 도구 없는 지침서
지침서만 원한다면, 예를 들어 직접 등록한 MCP 서버와 함께 쓰려면 skills.sh에서 스킬을 설치하십시오. 에이전트는 라우팅 규칙과 함께 제공되는 참고 자료를 얻지만 도구는 등록되지 않으므로, MCP 서버가 생기기 전까지 REA 호출은 없습니다.
명령
npx skills add morluto/rea --skill reverse-engineer-anything6. 신뢰하기 전에 검증하기
`rea doctor`는 읽기 전용입니다. 클라이언트 하나, 설치된 스킬, 엔진 하나를 따로 확인하십시오. 제공자 실패는 대상이 필요 없는 도구를 막지 않고, 클라이언트 검사는 등록을 검증할 뿐 성공적인 조사를 검증하지 않습니다. doctor는 파일과 전제 조건을 읽으며 실행 중인 세션은 볼 수 없으므로, 등록된 서버는 여전히 재시작이나 재연결이 필요합니다.
명령
rea doctor --client claude_code --jsonrea doctor --skill --jsonrea doctor --provider ghidra --json문서에 적힌 요구 사항
- 1Node.js 22.x(>= 22.23.4), 24.x(>= 24.22.1) 또는 26.12.1+ 와 그에 맞는 npm. Node 23, 25, 이전 26.x 릴리스, 프리릴리스는 지원되지 않습니다.
- 2로컬 MCP 서버를 지원하는 클라이언트. setup은 28개 클라이언트 ID를 인식합니다. claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, opencode, copilot_cli, antigravity, kimi, dsh, pi 등입니다.
- 3네이티브 엔진은 네이티브 작업에만 필요합니다. 정적 JavaScript/Electron과 .NET 분석에는 다른 것이 필요 없고, Android에는 헤드리스 JADX와 JDK, 펌웨어에는 Linux의 Binwalk 또는 Unblob이 필요합니다.
- 4패키지 획득은 대상 프로젝트 밖의 신뢰할 수 있는 디렉터리에서 하고, 분석 명령에는 절대 경로를 전달하십시오. 패키지 러너가 프로젝트 내부 패키지를 선택할 수 있고, REA는 진입점이 시작되기 전에 무슨 일이 있었는지 검증할 수 없습니다.
무언가를 증명하는 첫 세션
가장 값싸고 정직한 테스트는 이미 기능을 이해하고 있는, 내가 소유한 앱에서 네이티브 엔진이 끼어들지 않는 대상을 쓰는 것입니다. 답만이 아니라 증거를 요구하십시오. REA의 요점은 에이전트가 주장하는 코드 경로를 보여 줘야 한다는 것입니다.
에이전트에게 묻기
아래는 README의 예시를 그대로 옮긴 것입니다. Notes를 대상으로, 기능을 직접 확인할 수 있는 것으로 바꾸십시오. 에이전트는 REA 도구를 호출하고 Evidence를 읽고 확인하지 못한 부분을 밝혀야 합니다. 증거 없이 답한다면 MCP 연결이나 스킬이 빠졌을 가능성이 큽니다.
프롬프트
Understand how search works in the Notes app, show me the evidence,and build a similar feature for my project.또는 CLI를 직접 쓰기
모든 MCP 워크플로에는 CLI 대응물이 있고, REA에 대한 주장이 맞는지 가장 빨리 확인하는 방법입니다. 첫 명령은 추출된 Electron 디렉터리나 ASAR에 대해 엔진 없이 Evidence 레코드를 반환합니다. 두 번째는 배포된 산출물을 감사하고, 노출된 검사가 지정한 심각도에 도달하면 종료 코드 3으로 끝납니다.
명령
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --jsonrea audit-release-exposure ./dist/MyApp.app --fail_on high --json출력이 큰 이유와 대처법
실제 애플리케이션의 Evidence는 수백 메가바이트에 이를 수 있습니다. 문서가 제시하는 답은 저장한 뒤 뷰를 투영하는 것입니다: `rea analyze-javascript-application … > app-evidence.json`, 이어서 `rea inspect-analysis-view`로 요약이나 모듈 한 페이지를 얻습니다. MCP에서는 `REA_MCP_MAX_RESPONSE_BYTES`, `REA_MCP_INPUT_SCHEMA_PROFILE=full`, `REA_MCP_OUTPUT_SCHEMA_PROFILE=compact`가 모델이 보는 양을 조정합니다.
업데이트와 제거
`rea update`는 실행 중인 CLI를 소유한 전역 npm 또는 Bun 설치를 업데이트합니다. `npx`로 한 setup은 `npx rea-agents@latest setup`을 다시 실행해 갱신합니다. `rea uninstall`은 REA가 소유한 등록과 스킬 파일만 제거하고, `--purge-data`는 캐시와 상태도 함께 지웁니다. 둘 다 Hopper, Node.js, Evidence 파일, 무관한 스킬은 건드리지 않습니다.
명령
rea updatenpx rea-agents@latest setuprea uninstallrea uninstall --purge-dataREA vs. 직접 하기 vs. 지침만 담은 스킬 팩
정직한 비교 상대는 인간 리버스 엔지니어가 아닙니다. REA와 셸만 있고 도구는 없는 같은 에이전트의 비교, 그리고 지침만 배포하고 서버는 없는 스킬 팩과의 비교입니다.
| 측면 | 에이전트 + 셸, REA 없음 | 에이전트 + REA |
|---|---|---|
| 도구 연결 | 명령과 경로를 채팅에 붙여 넣고 모델이 어떤 디컴파일러 플래그를 쓸지 추측합니다. | 스킬이 대상을 스키마가 있는 도구로 라우팅하고, 서버가 인자를 검증해 구조화된 Evidence를 반환합니다. |
| 증거(Evidence) | 에이전트가 인용한 것뿐이고, 어느 파일의 어느 오프셋에서 왔는지 기록이 없습니다. | 발견에는 증거와 한계가 따르고, 미지수는 감추지 않고 목록으로 남습니다. |
| 큰 출력 | 300 MB 덤프는 컨텍스트 창을 터뜨리거나 `head`에 잘립니다. | Evidence는 저장되고 투영된 뒤 — 요약, 모듈 페이지, 또는 단일 모듈 — 모델에 도달합니다. |
| 지침만 있는 팩 | 리버스 엔지니어링 스킬 팩은 방법을 가르치지만 도구를 등록하지 않으므로 에이전트는 결국 셸을 부릅니다. | REA는 두 반쪽을 모두 제공합니다: 스킬과 그것이 설명하는 MCP 서버/CLI. 스킬만 설치하는 것도 지원되지만 도구는 빠진 채로 남습니다. |
법적·안전 경계 — 프로젝트 자체에서 온 것이며 여기서 만들지 않았습니다
경계는 REA 자체의 DISCLAIMER.md와 SECURITY.md가 긋고, 이런 도구를 둘러싼 홍보보다 엄격합니다. 짧게 말하면, 소프트웨어를 분석할 수 있는 것과 분석이 허용되는 것은 같지 않습니다.
- 의도된 용도: 보안 연구, 악성코드 및 사고 분석, 취약점 연구와 조정된 공개, CTF와 교육, 상호운용성, 소프트웨어 보존, 그리고 본인이 소유하거나 검사 권한을 받은 소프트웨어의 감사.
- 명시적으로 지원하지 않음: DRM, 라이선스 검사, 안티치트 및 기타 기술적 보호 조치의 우회, 게임 치트나 온라인 서비스 변조, 테스트 권한이 없는 인증이나 접근 제어의 우회, 독점 코드와 자산의 복제, 모델 제공자 정책의 회피.
- 권한을 확보하는 것은 본인 몫입니다. 바이너리가 공개되어 있다는 것, 파일을 가지고 있다는 것, 디버깅 엔드포인트에 접근할 수 있다는 것만으로는 허가가 되지 않으며, 관할 지역의 법률이나 소프트웨어 라이선스가 리버스 엔지니어링을 제한할 수 있습니다.
- 상용 도구는 상용으로 남습니다: IDA Pro/Hex-Rays, Hopper, JEB는 합법적으로 취득하고 라이선스를 받아야 합니다. REA는 키, 라이선스, 활성화를 제공하지 않으며 크랙 버전이나 공유 키는 허용되지 않습니다.
SECURITY.md의 실용적인 두 가지: REA는 샌드박스가 아니며 CLI와 MCP는 계정 권한으로 실행됩니다. 그리고 대상 파일, 캡처, 웹 페이지는 신뢰할 수 없는 데이터이므로 바이너리에 심어진 지시는 사용자의 지시가 아닙니다. 직접 빌드하지 않은 대상에는 일회용 VM이나 컨테이너를 쓰고, 런타임 워크플로를 소유하지 않은 시스템으로 향하게 하지 마십시오.
설치 전: 정직한 다섯 가지 유의점
어느 것도 REA를 건너뛸 이유가 아니라, 먼저 대상 하나에서 시험해 볼 이유입니다.
- 1빠르게 움직이는 서드파티 프로젝트입니다. npm은 3주 만에 6.8.0에서 6.9.0으로 갔고, `main`에서 설치한 스킬은 이전 npm 릴리스에 없는 기능을 설명할 수 있다고 문서가 경고합니다. 스킬 텍스트가 아니라 연결된 서버의 도구 목록을 신뢰하십시오.
- 2클라이언트 지원은 넓지만 고르지 않습니다. 일부 클라이언트 ID는 더 새로운 rea-agents가 필요합니다(droid, dsh, kimi, qoder, trae, workbuddy, zcode는 6.5.0부터, freebuff는 6.8.0부터). `lm_studio`는 6.8.0 이후 릴리스가 필요합니다.
- 3setup은 에이전트 설정과 스킬 디렉터리에 기록합니다. `.rea.backup` 스냅숏을 남기고 검증할 수 없는 파일은 덮어쓰지 않지만, 같은 파일을 편집하는 다른 작성자와 조정할 수는 없습니다. 문서가 요청하듯 클라이언트를 먼저 종료하십시오.
- 4엔진 설정이 가장 걸리는 부분입니다. Hopper는 상용이고 데모가 제한적이며, 자동 설치 프로그램은 macOS와 x86_64 Linux만 지원하고, 다른 아키텍처는 Ghidra를 쓰라고 문서에 적혀 있습니다. 엔진이 없으면 doctor의 전체 `healthy`가 false가 될 수 있습니다. 선택한 작업이 동작한다면 정상이라고 문서가 밝히고 있으며, 막히는 것은 네이티브 의사 코드뿐입니다.
- 5컨텍스트와 프라이버시: Evidence는 에이전트가 읽으므로 모델 제공자도 읽습니다. 분석은 로컬이지만 결과는 그렇지 않습니다. 민감한 대상은 로컬 모델로 돌리거나 아예 루프에서 빼십시오.
DeepSeek Harness와 인접 스킬 팩
REA의 README는 DeepSeek Harness를 언급하지 않지만, 이 패키지는 그곳에 등록할 수 있습니다. `dsh`는 setup의 클라이언트 ID 중 하나이고, DSH 디렉터리에는 REA 프로젝트 자체와 커뮤니티 어댑터가 모두 실려 있습니다. zhaofeng130/dsh-rea는 비공식 어댑터로 `reverse-engineer-anything` 스킬과 `rea`, `rea_doctor` 도구를 등록하며 REA를 함께 번들하지 않는다고 명시합니다. dhicoc/dsh-reverse-skill은 또 다른 것으로, reverse-skill 팩(리버스 엔지니어링, 승인된 침투 테스트, CTF를 위한 87개 SKILL.md)의 이식이며 REA 의존성이 없습니다. 둘 다 morluto/rea와 제휴 관계가 없습니다. 설치 전에 읽어 보십시오.
