Service
GitHub - morluto/rea: Reverse engineer anything with agents, from app behavior down to native binaries.
morluto
2026.10.13
·GitHub·by Homin.Lee#Agent#Binary Analysis#Code Analysis#RE#Reverse Engineering
핵심 포인트
- 1REA(Reverse Engineer Anything)는 바이너리, 애플리케이션, 런타임 동작 전반에 걸쳐 리버스 엔지니어링을 수행할 수 있도록 설계된 통합 MCP(Model Context Protocol) 서버입니다.
- 2이 도구는 Hopper, Ghidra, IDA 등 외부 엔진과 연동하여 로컬 환경에서 정적·동적 분석을 수행하며, 추출된 결과를 기반으로 에이전트가 코드 구조를 파악하고 기능을 재구현하도록 지원합니다.
- 3사용자들은 `npx rea-agents setup` 명령어를 통해 에이전트에 REA를 등록할 수 있으며, 네이티브 바이너리부터 JavaScript, Android APK, .NET 어셈블리에 이르기까지 다양한 타겟을 분석할 수 있습니다.
REA (Reverse Engineer Anything)은 바이너리, 애플리케이션, 런타임 환경 전반에 걸쳐 리버스 엔지니어링을 수행할 수 있도록 설계된 Model Context Protocol (MCP) 기반의 오픈소스 프레임워크입니다. 이 시스템은 AI 에이전트가 소스 코드 없이도 소프트웨어의 내부 동작을 분석하고, 그 결과를 바탕으로 새로운 기능을 구현하거나 이해할 수 있도록 돕는 도구 모음입니다.
핵심 방법론 및 기술적 구성
REA의 핵심 방법론은 로컬 분석 엔진(Local Analysis Engine)과 AI 에이전트 간의 MCP 인터페이스 연동에 있습니다.- MCP 기반 통합: REA는 에이전트가 외부 도구(Hopper, Ghidra, IDA 등)와 통신할 수 있는 표준화된 MCP 서버 역할을 수행합니다. 사용자가 에이전트에게 특정 기능을 분석하도록 요청하면, REA는 적절한 리버스 엔지니어링 도구를 호출하여 대상체(Native binaries, Electron, .NET 등)를 검사합니다.
- 데이터 분석 계층:
- Native Analysis: Hopper, Ghidra 또는 IDA Pro와 연동하여 Pseudocode, Assembly, Symbols, Calls 및 References를 추출합니다.
- JavaScript/Electron Analysis: 소스 맵(Source maps), 모듈 관계, IPC(Inter-Process Communication) 통신 및 네이티브 애드온 간의 연결성을 동적으로 분석합니다.
- Static/Runtime Inspection: .NET 어셈블리의 CIL(Common Intermediate Language) 명령어 분석부터, Android의 JADX를 활용한 APK 정적 분석, 그리고 SQLite 데이터베이스 및 네트워크 패킷(HAR, PCAP) 캡처까지 광범위한 타겟을 지원합니다.
- 증거 중심 결과 도출: REA는 단순히 결과를 반환하는 것이 아니라, 결과물에 대한 Evidence(증거)를 함께 제공합니다. 이는 모델이 결과를 hallucination 없이 검증하고, 실제 코드 구현으로 이어질 수 있게 하는 핵심 근거가 됩니다. 예를 들어,
analyze-javascript-application커맨드는 모듈 및 Electron 경계의 연관성을 매핑하여 분석 결과의 정확성을 보장합니다.
주요 특징
- 오프라인 로컬 분석: 모든 분석은 클라우드 외부 유출 없이 로컬 환경에서 수행되며, 결과에는 항상 기술적 limitations가 명시됩니다.
- 워크플로우 자동화: 에이전트에게 특화된 workflow instructions를 설치하여, 복잡한 리버스 엔지니어링 과정을 자동화된 질의응답 형태로 최적화합니다.
- 범용성: DOS 16-bit 바이너리부터 최신 Electron 앱, WASM 아티팩트, 심지어 하드웨어 신호(sigrok-cli) 분석까지 지원하는 유연한 확장성을 갖추고 있습니다.