REA: 소스 코드 없는 앱과 바이너리를 AI 에이전트로 분석·재구현하는 역공학 MCP 서버
AI 코딩 에이전트가 네이티브 바이너리부터 일렉트론, 웹 앱까지 리버스 엔지니어링하고 기능을 재현할 수 있도록 지원하는 오픈소스 CLI 및 MCP 도구 'REA(morluto/rea)' 분석.
소프트웨어 개발 중 타사 애플리케이션의 특정 기능이나 동작 방식을 파악해 자체 프로덕트에 맞게 구현해야 하는 상황은 빈번하게 발생하지만, 소스 코드가 없는 환경에서 실행 바이너리나 복잡하게 번들링된 데스크톱·웹 코드를 분석하는 일은 고도의 역공학 전문성과 많은 시간을 요구합니다. 오픈소스 개발자 morluto가 공개한 'REA(Reverse Engineer Anything)'는 Claude, Cursor, VS Code 등 AI 코딩 에이전트가 소스 코드 없이도 애플리케이션의 동작과 네이티브 바이너리를 체계적으로 조사하고, 도출된 증거를 기반으로 원하는 기능을 자신의 기술 스택에 맞춰 재구현할 수 있도록 지원하는 오픈소스 CLI 및 stdio MCP(Model Context Protocol) 서버입니다.

이미지 출처: GitHub / morluto
TypeScript 기반으로 작성되어 MIT 라이선스로 배포되는 REA는 AI 코딩 에이전트에게 소프트웨어를 조사할 수 있는 단일하고 일관된 인터페이스를 제공합니다. 복잡한 디스어셈블러와 디컴파일러 툴체인을 직접 다루는 대신, 에이전트가 로컬 CLI 또는 stdio MCP 채널을 통해 애플리케이션 구조를 관찰하고 실행 흐름을 추적할 수 있도록 돕습니다.
네이티브 바이너리부터 일렉트론·웹까지 아우르는 다계층 분석 역량
REA는 데스크톱 네이티브 실행 파일부터 현대적인 웹 및 크로스 플랫폼 애플리케이션에 이르기까지 폭넓은 레이어의 소프트웨어 조사를 지원하도록 설계되었습니다.
- 네이티브 바이너리 및 함수 도시에(Function Dossier): Linux 환경에서 Hopper 디컴파일러 또는 사용자가 보유한 Ghidra를 연동하여 심층 네이티브 분석을 수행하고, 함수의 동작 원리와 입출력을 상세히 정리한 '함수 도시에'를 생성합니다.
- Windows x64 네이티브 PE 지원: 승인된 네이티브 PE 애플리케이션을 대상으로 실험적(Ghidra P0) 분석 경로를 제공하여 윈도우 환경 바이너리 조사를 뒷받침합니다.
- 무실행 관리형 PE/CLI 트리아지: 의심스러운 바이너리나 실행 파일을 직접 실행하지 않고도 정적 구조와 메타데이터를 안전하게 파악할 수 있는 트리아지(triage) 기능을 제공합니다.
- Node 및 Electron V8 Inspector 연동: 일렉트론 애플리케이션이나 Node 런타임의 V8 인스펙터에 연결하고, 웹사이트 및 일렉트론 페이지의 수동 관찰을 통해 실행 컨텍스트 라이프사이클과 스크립트 메타데이터 등 런타임 상태를 관찰합니다.
- JavaScript 및 소스맵 재구성: 번들링되거나 압축된 자바스크립트 자산과 소스맵(source-map)을 경계 내에서 재구성하여 모듈 구조와 컴포넌트 레이아웃을 파악합니다.
검증 가능한 Evidence v2 기록과 에이전트 주도 기능 재구현
단순한 코드 디컴파일 도구와 REA의 가장 큰 차별점은 '재현 가능한 증거 기반 워크플로우'와 '기능 재구현(Recreation)'에 초점이 맞춰져 있다는 점입니다.
REA는 소프트웨어를 조사하는 과정에서 관찰된 동작과 코드 단편을 'Evidence v2' 구조화 레코드로 기록합니다. 분석 결과를 일회성 텍스트로 소비하는 것이 아니라, 검증 가능한 증거 파일 형태로 에이전트에게 전달함으로써 환각(hallucination)을 줄이고 정확한 로직 파악을 유도합니다.
AI 코딩 에이전트는 이렇게 확보된 Evidence v2 기록을 토대로 대상 기능이 어떤 데이터 구조와 알고리즘으로 동작하는지 명확히 파악한 뒤, 사용자가 지정한 아키텍처, 프로그래밍 언어, 디자인 요구사항에 맞추어 기능을 새롭게 재작성합니다. 즉, 외부 소프트웨어의 분석부터 자체 코드베이스로의 이식 및 재구현까지 이어지는 전 과정을 단일한 루프 안에서 수행할 수 있습니다.
설치 경로, 지원 클라이언트 및 로컬 실행 시 주의 사항
REA는 npm 패키지 레지스트리를 통해 공식 배포되며 터미널 환경과 MCP 클라이언트 환경 모두에서 즉시 활용할 수 있습니다.
- 패키지 배포: npm 패키지
rea-agents로 배포되며, 독립 실행형 CLI와 stdio 기반 MCP 서버 모드를 함께 지원합니다. - 클라이언트 연동: 표준 stdio 프로토콜을 사용하므로 Claude Code, Cursor, VS Code 등 주요 MCP 호환 에이전트 클라이언트의 설정 파일에 등록하여 로컬에서 바로 구동할 수 있습니다.
- 오픈소스 생태계: TypeScript로 작성된 MIT 라이선스 프로젝트로, 내부 구현 검증과 기능 확장이 자유롭습니다.
도구를 실무 워크플로우에 도입할 때 고려해야 할 기술적 경계와 보안 주의점도 존재합니다.
- 외부 디컴파일러 의존성과 OS 지원 단계: 심층 네이티브 바이너리 분석은 Linux 환경의 Hopper 또는 별도로 설치된 Ghidra 환경에 의존하며, Windows x64 환경의 PE 바이너리 분석은 아직 실험적(P0) 단계로 기능 성숙도에 차이가 있습니다.
- 로컬 프로세스 실행 권한 주의: REA는 사용자의 로컬 머신에서 현재 사용자 권한을 부여받아 stdio 프로세스로 구동됩니다. 따라서 악성코드 가능성이 있거나 신뢰할 수 없는 임의의 외부 바이너리를 분석할 때는 격리된 가상 머신(VM)이나 컨테이너 샌드박스 환경에서 실행하는 것이 안전합니다.
출처
- GitHub: morluto/rea 리포지토리
- npm: rea-agents 패키지
- X: Mo Elgaraihy (@EngMoElgaraihy) 소개 스레드