rea

AI 에이전트가 바이너리, 앱, 웹사이트를 로컬에서 리버스 엔지니어링할 수 있게 해주는 오픈소스 MCP 서버 및 CLI로, 증거 기반의 결과를 제공합니다.

TypeScriptMITMCP
⭐ GitHubhttps://github.com/morluto/rea
273,713
스타 수
+0
스타 증가율
2026년 10월 16일
최근 업데이트
4
클릭 수

1. 프로젝트 개요

REA(Reverse Engineer Anything) 는 AI 에이전트가 네이티브 바이너리부터 Electron 앱, 웹사이트, Android 패키지까지 소프트웨어를 검사하고, 작동 방식을 설명하며, 모든 결론에 증거를 첨부할 수 있게 해주는 오픈소스 MCP(Model Context Protocol) 서버이자 명령줄 도구입니다. 모든 작업은 사용자 머신에서 로컬로 실행됩니다.

2. 배경 및 포지셔닝

제작 동기

리버스 엔지니어링은 일반적으로 여러 전문 도구(디컴파일러, 디스어셈블러, 패킷 분석기, 브라우저 개발자 도구)를 전환하며 사용하고, 발견한 내용을 수동으로 엮어야 합니다. REA는 AI 코딩 에이전트에게 이러한 도구들에 대한 단일하고 일관된 인터페이스를 제공하여, 에이전트가 소스 코드 없이 대상을 검사하고, 기능의 동작 방식을 설명하며, 유사한 기능을 구축하는 데 도움을 줄 수 있게 합니다.

유사 프로젝트와의 차별점

  • 다양한 대상을 위한 단일 MCP: 단일 디컴파일러를 위한 단일 목적 플러그인 대신, REA는 바이너리, 애플리케이션, 런타임 동작을 하나의 서버에서 다룹니다.
  • 증거 우선 출력: 결과에는 이를 뒷받침하는 의사 코드, 어셈블리, 심볼, 참조 및 알려진 제한 사항에 대한 메모가 포함됩니다.
  • 공급업체 중립적: 네이티브 분석에는 Hopper, Ghidra 또는 IDA를 사용할 수 있고, 오프라인 검사에는 GNU objdump 또는 Rizin을 사용할 수 있습니다.
  • 로컬 및 정적 우선: 분석은 로컬에서 실행됩니다. 정적 JavaScript 및 .NET 검사는 파일을 실행하지 않고 읽습니다.
  • 이중 인터페이스: 동일한 워크플로를 MCP를 통해 에이전트가 사용할 수 있고, rea CLI를 통해 사람이 사용할 수 있습니다.

3. 기능 분류

🧩 네이티브 바이너리 및 펌웨어

  • 대상: 네이티브 실행 파일, ELF, Go/Rust, WASM, EVM 바이트코드, 펌웨어 이미지
  • 예시: Hopper/Ghidra/IDA를 통한 의사 코드 및 어셈블리; ELF 섹션, 세그먼트 및 완화(Mitigation) 후보(pwntools); Go/Rust 컴파일러 및 크레이트/의존성 정보; WASM 검증 및 WAT 형식(WABT); EVM 디스패치 선택자 및 변경 가능성; 펌웨어 언패킹(Binwalk/Unblob)
  • 목적: 소스 코드가 없을 때 컴파일된 코드를 이해합니다.

🌐 웹 및 JavaScript 애플리케이션

  • 대상: 웹사이트, JavaScript 및 Electron 앱
  • 예시: Electron 앱의 모듈, 임포트, 라우트 및 IPC; 네이티브 애드온; 웹사이트의 페이지 구조, 스크립트, 네트워크 데이터 및 스크린샷(Chrome 계열 브라우저)
  • 목적: 웹 또는 데스크톱-웹 애플리케이션이 어떻게 구성되어 있는지 파악합니다.

📱 모바일 및 .NET

  • 대상: Android APK 및 기기, .NET 어셈블리, Flutter, Apple 앱 번들
  • 예시: APK 매니페스트 및 디컴파일된 메서드(JADX + JDK); 기기 로그 및 파일 전송(adb); .NET 메타데이터, CIL 명령어 및 빌드 비교
  • 목적: 모바일 및 관리 코드 소프트웨어를 검사합니다.

📡 데이터, 네트워크 및 신호

  • 대상: SQLite, 패킷 캡처, 로직 분석기 녹화, 프로세스 동작
  • 예시: SQLite 테이블, 인덱스, 뷰, 트리거 및 행; TShark를 통한 pcap 분석; sigrok-cli를 통한 로직 신호 디코딩; 런타임 프로세스 캡처
  • 목적: 코드와 함께 데이터 저장소 및 런타임 동작을 검사합니다.

🤖 에이전트 통합

  • 대상: Claude Code, Codex, Cursor, Gemini CLI, Grok Build 및 로컬 MCP 서버를 지원하는 기타 에이전트
  • 예시: 원커맨드 setup, 설치된 워크플로 지침, 게시된 에이전트 스킬, 전체 rea CLI
  • 목적: 이미 사용 중인 에이전트에서 도구를 사용할 수 있게 합니다.

4. 주요 특징

  • 광범위한 대상 지원: 하나의 서버로 네이티브 코드부터 웹사이트까지 수십 가지 대상 유형을 처리합니다.
  • 증거 기반 결과: 모든 답변에는 이를 뒷받침하는 산출물과 명시된 한계가 포함되어 있어, 결과를 더 쉽게 검증할 수 있습니다.
  • 안내식 설정: setup은 승인을 위해 제안된 구성 변경 사항을 표시하고, 적용 전에 기존 구성을 백업합니다.
  • 자체 도구 사용: REA는 이미 보유한 디컴파일러 및 유틸리티와 통합되며, 이를 설치하거나 업데이트하지 않습니다.
  • 문서화된 쇼케이스: 사례 연구에는 3,205개의 원본 x86 테스트 케이스를 통과한 DX-Ball 재구성, Notion용 Electron 클립보드 브리지 연구, TH04용 DOS 탄환 링 계산이 포함됩니다.
  • 현지화된 문서: README는 20개 언어로 제공됩니다.

5. 역할별 사용 사례

  • 일반 개발자: 문서화되지 않은 동작을 이해하고, 라이브러리나 앱이 기능을 구현하는 방식을 연구하거나, 상호 운용성을 작업합니다.
  • DevOps/SRE: 타사 바이너리 및 데스크톱 앱을 검사하고, Go/Rust 빌드의 의존성을 검토하며, 네트워크 캡처를 조사합니다.
  • 보안 엔지니어: 바이너리 분류, ELF 완화 검토, APK, 펌웨어 및 패킷 캡처 분석 — 승인된 소프트웨어에 대해서만 수행합니다.
  • 데이터/연구 과학자: SQLite 파일에서 테이블을 추출하고, 파일 형식을 문서화하며, 소프트웨어 보존 작업을 지원합니다.
  • 프로젝트 관리자: 경쟁사 또는 레거시 제품의 동작 방식에 대한 읽기 쉬운 증거 기반 요약을 얻어 계획을 수립합니다.

6. 시작하기

🔍 필요한 것 찾기

rea.tools/guides 및 rea.tools/showcase에서 가이드와 쇼케이스를 살펴보거나, 저장소의 문서(docs/cli.md, docs/mcp-contracts.md)를 확인하세요.

⚙️ 설치 및 통합

Node.js 22.19+, 24.11+ 또는 26+ 및 npm이 필요합니다.

# 에이전트에 REA 등록 및 지침 설치
npx rea-agents setup

# 또는 전역 CLI 설치
npm install --global rea-agents
rea --help

# 터미널에서 추출된 JavaScript/Electron 앱 분석
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

# 전역 설치 업데이트
rea update

설정 또는 업데이트 후 에이전트를 다시 시작하세요.

🤝 기여하기

이슈 또는 풀 리퀘스트를 열어주세요. 개발 설정 및 확인 사항은 CONTRIBUTING.md를, 취약점 신고는 SECURITY.md를 참조하세요.

7. 프로젝트 구조

rea/
├── src/                 # 핵심 소스 코드(TypeScript)
├── bridge/              # 브리지 구성 요소
├── native/windows/      # Windows 네이티브 지원
├── website/             # rea.tools 소스
├── docs/                # 문서, 번역된 README, 자산
├── tests/               # 테스트 스위트
├── scripts/             # 유지 관리 스크립트
├── licenses/            # 라이선스 텍스트
├── third_party/         # 타사 자료
├── CONTRIBUTING.md
├── DISCLAIMER.md
├── SECURITY.md
└── THIRD_PARTY_NOTICES.md
  • docs/에는 설치, CLI, MCP 계약, 공급업체 가이드, 로드맵 및 아키텍처 맵이 있습니다.
  • docs/readme/에는 번역된 README가 있습니다.
  • THIRD_PARTY_NOTICES.md에는 번들 또는 참조된 구성 요소의 라이선스가 나열됩니다.

8. 관련 생태계

  • 분석 공급업체: Hopper, Ghidra, IDA, GNU objdump, Rizin
  • 지원 도구: JADX, Apktool, adb, JEB, WABT, pwntools, Binwalk, Unblob, TShark, sigrok-cli
  • 배포: rea-agents npm 패키지
  • 에이전트 스킬: skills.sh의 reverse-engineer-anything
  • 쇼케이스 저장소: N0zoM1z0/dx-ball 및 N0zoM1z0/th04
  • 에이전트: Claude Code, Codex, Cursor, Gemini CLI, Grok Build 및 기타 MCP 지원 클라이언트

9. 라이선스

  • ✅ REA 작성 코드는 MIT 라이선스로 배포됩니다: 사용, 수정 및 재배포가 가능합니다.
  • ✅ 합법적인 연구, 교육, 상호 운용성, 소프트웨어 보존 및 소유하거나 검사 권한이 있는 소프트웨어 분석을 위한 용도입니다.
  • ❌ REA는 IDA Pro, Hopper 또는 JEB와 같은 상용 도구에 대한 라이선스나 키를 부여하지 않습니다. 직접 합법적으로 획득해야 합니다.
  • ❌ 검사 권한이 없는 소프트웨어 분석을 위한 용도가 아닙니다.
  • ℹ️ 타사 구성 요소는 자체 라이선스를 유지합니다(THIRD_PARTY_NOTICES.md 참조).
  • ℹ️ 사용 전에 DISCLAIMER.md를 검토하고, 공식 저장소, rea.tools 또는 rea-agents npm 패키지에서만 설치하세요.

10. FAQ

Q: REA는 어떤 AI 에이전트와 작동하나요?
A: Claude Code, Codex, Cursor, Gemini CLI, Grok Build 및 로컬 MCP 서버를 지원하는 기타 에이전트와 작동합니다. 등록하려면 npx rea-agents setup을 실행하세요.

Q: 디컴파일러를 설치해야 하나요?
A: 네이티브 바이너리 의사 코드의 경우, Hopper, Ghidra 또는 IDA가 필요합니다. 다른 많은 대상(JavaScript, .NET, Go/Rust, SQLite)은 내장 또는 경량 검사를 사용합니다. REA는 공급업체를 대신 설치하지 않습니다.

Q: 내 데이터가 내 머신을 벗어나나요?
A: 분석은 로컬에서 실행됩니다. 정적 검사는 파일을 실행하지 않고 읽습니다. 런타임 캡처는 사용자 권한으로 대상을 실행합니다.

Q: REA를 어떻게 업데이트하나요?
A: 전역 설치의 경우 rea update를 실행하고, npx 업데이트 후 에이전트 등록을 새로 고치려면 npx rea-agents@latest setup을 실행하세요.

Q: 실제 작동하는 모습은 어디서 볼 수 있나요?
A: rea.tools/showcase에서 DX-Ball 및 Notion과 같은 사례 연구를 확인하세요.

11. 빠른 링크

12. 요약

REA는 AI 에이전트에게 바이너리, 애플리케이션, 웹사이트 및 런타임 동작을 로컬에서 리버스 엔지니어링할 수 있는 단일하고 증거 중심의 인터페이스를 제공합니다. 검사 권한이 있는 소프트웨어를 이해하려는 개발자, 보안 엔지니어 및 연구자에게 적합하며, 대상마다 별도의 도구를 사용할 필요가 없습니다.