앱의 내부 동작을 에이전트가 직접 파헤쳐 내 제품 기능으로 재현하는 길
원하는 기능이 있는 앱이 보이지만 소스 코드가 없어 어떻게 작동하는지 알 수 없을 때, AI 에이전트가 이 도구를 통해 바이너리 수준까지 파고들어 원리를 설명하고 증거를 제시합니다. REA는 에이전트가 역공학 도구를 직접 조작할 수 있게 연결하는 MCP 서버이자 CLI 도구입니다. 분석은 로컬에서 수행되며, 결론마다 근거와 한계를 함께 보여줍니다.
에이전트가 수행하는 조사 과정
사용자는 에이전트에게 특정 앱의 기능을 이해하고 유사한 기능을 만들어 달라고 요청하기만 하면 됩니다. 에이전트는 REA를 통해 바이너리를 열고 문자열이나 심볼을 검색한 뒤, 해당 코드가 어디에서 호출되는지 추적합니다. 이어 제어 흐름을 재구성하고 필요한 루틴을 디컴파일하여 가독성 있는 코드로 변환합니다. 이 과정에서 에이전트는 단순히 추측하지 않고, 도구가 반환한 증거를 바탕으로 결론을 도출합니다. 최종 단계에서는 에이전트가 자신의 파일 편집 및 테스트 도구를 사용해 학습한 내용을 바탕으로 사용자의 프로젝트에 맞는 기능을 구현합니다.
지원 대상과 분석 범위
REA는 네이티브 바이너리, JavaScript 및 Electron 앱, .NET 어셈블리, 웹사이트를 대상으로 분석합니다.
- 네이티브 바이너리 Mach-O, ELF, PE 형식을 지원하며 Hopper, Ghidra, IDA Pro와 연동합니다. 함수, 의사 코드, 어셈블리, 문자열, 심볼 등을 검사합니다.
- JavaScript 및 Electron 앱 실행 없이 정적 분석을 수행하며 모듈 구조와 네이티브 애드온을 매핑합니다. 빌드 간 비교와 기능 추적이 가능합니다.
- 웹사이트 및 브라우저 실행 중인 브라우저를 통해 페이지 구조와 네트워크 메타데이터를 관찰합니다. 능동적 조작이 아닌 수동 관찰에 초점을 맞춥니다.
- .NET 어셈블리 어셈블리를 로드하거나 실행하지 않고 메타데이터와 CIL 명령어를 검사합니다. 선언된 네이티브 의존성을 확인합니다.
설치 및 요구 사항
설치는 npx rea-agents setup 명령으로 시작하며, 지원되는 에이전트를 선택하고 변경 사항을 승인하는 과정을 거칩니다. 정적 JavaScript 분석은 Node.js와 npm만 필요하지만, 네이티브 바이너리 분석은 Hopper, Ghidra, IDA Pro 중 하나가 필요합니다. Hopper는 별도 라이선스가 있으며 데모 모드를 지원합니다. Ghidra와 IDA Pro는 사용자가 직접 설치한 것을 가져다 쓰는 방식입니다. 운영체제로는 macOS 12 이상, Ubuntu 24.04 이상, Fedora 41 이상, 64비트 Arch Linux를 지원하며 Node.js 22.x 이상 또는 24.x 이상, 26 이상 버전이 필요합니다. Windows x64 Ghidra 지원은 실험적이며 특정 조건에서만 가능합니다.
사용 전 확인 사항
REA는 분석 결과를 로컬에 유지하며 호스팅된 서비스로 앱을 업로드하지 않습니다. Hopper의 데모 모드에는 벤더가 정의한 제한이 있으므로 상용 라이선스가 필요한지 검토해야 합니다. Ghidra를 사용할 경우 12.1.4 버전과 64비트 JDK 21이 필요하며, macOS에서는 아키텍처에 맞는 네이티브 디컴파일러가 설치되어 있어야 합니다. IDA Pro 어댑터는 초기에 Windows GUI와 x64 헤드리스 환경만 검증되었으므로 다른 조합은 미검증 상태입니다. 또한 REA는 원래 소스 코드를 복원한다고 주장하지 않으며, 디컴파일 결과는 의사 코드일 뿐 원본 소스가 아닙니다.