REA: AI 에이전트로 바이너리·앱 리버스 엔지니어링

Published · AI Daily — AI-assisted deep research, methodology & disclosure

REA(Reverse Engineer Anything)는 AI 에이전트를 위한 리버스 엔지니어링 MCP 서버입니다. TypeScript로 작성되었고 npm 패키지 rea-agents로 배포됩니다. 네이티브 바이너리, JavaScript 및 Electron 앱, .NET 어셈블리, 웹사이트의 분석 기능을 Claude Code, Codex, Cursor, Gemini CLI 등의 에이전트에 통합해 연결하며, 터미널에서 직접 사용할 수도 있습니다. 네이티브 분석은 설치된 Hopper, Ghidra, IDA를 호출할 수 있고, 정적 JavaScript 분석에는 네이티브 엔진이 필요 없습니다. 분석은 로컬에서 실행되며, 모든 결론에는 근거와 한계 설명이 함께 제공됩니다. 소스 코드가 없는 앱의 동작 원리를 파악하거나 경쟁사 조사, 호환성 문제 추적, 보안 분석을 하려는 개발자와 연구자에게 적합합니다.

배경

리버스 엔지니어링은 진입 장벽이 높은 작업입니다. 소스 코드가 없는 앱에서 기능 하나가 어떻게 동작하는지 알아내려면 네이티브 바이너리, 번들된 JavaScript, Electron 앱, .NET 어셈블리, 실제 웹사이트를 한꺼번에 마주해야 할 때가 많습니다. 대상마다 도구 체인이 다르고, 연구자는 Hopper, Ghidra, IDA 같은 디스어셈블러를 오가며 단서를 손으로 기록하고 결론을 글로 정리해 왔습니다.

REA(Reverse Engineer Anything)는 이 흐름을 바꾸려는 프로젝트입니다. morluto가 관리하며 TypeScript로 작성되었고 npm 패키지 rea-agents로 배포됩니다. 새 디컴파일러를 만들기보다 기존 분석 엔진 위에 얹혀서, Claude Code, Codex, Cursor, Gemini CLI 같은 에이전트가 하나의 일관된 방식으로 호출하게 해 주는 접속 계층입니다. 공식 사이트, 가이드, 사례 모음, FAQ, MCP 계약 문서가 있고 README는 열 개가 넘는 언어로 제공됩니다.

심층 분석

REA는 어떻게 AI 에이전트가 소스 코드 없는 앱을 분석하게 할까요? REA는 네이티브 바이너리, JavaScript와 Electron 앱, .NET 어셈블리, 웹사이트를 하나의 MCP 진입점으로 묶어 제공합니다. 에이전트가 호출하면 모든 결론이 뒷받침하는 근거와 한계 설명과 함께 돌아옵니다. 네이티브 분석은 설치된 Hopper, Ghidra, IDA를 사용할 수 있고, 정적 JavaScript 분석에는 네이티브 엔진이 필요 없습니다.

설계상 눈에 띄는 점은 세 가지입니다. 첫째, 같은 도구를 에이전트도 쓰고 터미널에서 직접도 쓸 수 있어서, 에이전트가 먼저 훑은 뒤 명령줄로 검산할 수 있습니다. 둘째, 분석이 로컬에서 실행됩니다. 셋째, 근거와 한계를 함께 붙이는 규칙은 언어 모델의 가장 큰 약점인 그럴듯하지만 뒷받침 없는 설명에 대한 답입니다. 독자는 믿는 대신 근거를 따라가 확인할 수 있습니다.

설치는 짧습니다. Node.js와 npm이 있으면 npx rea-agents setup을 실행하고, 연결할 에이전트를 고른 뒤 설치 프로그램이 보여 주는 변경 사항을 확인합니다. 기존 설정은 백업되며 끝나면 에이전트를 재시작합니다. README는 Claude Code, Codex, Cursor, Gemini CLI, Grok Build를 지원 대상으로 꼽습니다. 설치 때 작업 순서를 알려 주는 워크플로 지침도 함께 기록되어, 에이전트가 도구를 쓰는 순서를 알게 됩니다. Linux에서는 Ghidra, JADX, 펌웨어 도구 실행과 정적 JavaScript, Electron 분석에 procps 호환 ps가 PATH에 있어야 하며, 복구 절차는 docs/installation.md에 있습니다.

산업 영향

전형적인 사용 장면은 단순합니다. 데스크톱 앱에서 마음에 드는 기능을 보고, 에이전트에게 REA로 조사해 달라고 요청합니다. 에이전트는 소스 없이 앱을 살펴 원리를 설명하고 근거를 제시하며, 이어서 내 프로젝트에 맞는 구현을 쓰는 일도 도울 수 있습니다. 소수 전문가의 수작업이던 리버스 엔지니어링이 에이전트가 거드는 작업 흐름으로 넘어오는 셈입니다.

독립 개발자와 작은 팀에게는 경쟁사 조사, 호환성 문제 추적, 레거시 소프트웨어 이해의 시작 비용이 낮아집니다. 보안 연구자에게는 통합 MCP 인터페이스 덕분에 서로 다른 엔진의 강점을 조합할 여지가 생깁니다.

위험도 분명합니다. 타인의 소프트웨어를 분석하는 일은 라이선스와 법적 문제를 수반하므로 사용자가 직접 약관과 현지 법을 확인해야 합니다. 근거가 붙어도 에이전트의 설명은 사람이 검토해야 하며, 특히 디컴파일 결과에 기댄 추론이 그렇습니다. 네이티브 분석의 품질은 Hopper, Ghidra, IDA의 상태에도 좌우됩니다. README는 이름이 비슷한 저장소가 공식 배포의 증거가 되지 않으니 morluto/rea, rea.tools, npm 패키지에서만 받으라고 당부합니다.

전망

지켜볼 대목은 세 가지입니다. 첫째는 범위입니다. 현재 지원하는 네 가지 대상 유형을 넘어 더 넓어질지가 관건입니다. 둘째는 커뮤니티 지식입니다. 사례 모음과 agent-skills 방식에 검증된 워크플로가 쌓이면 재사용 가능한 방법 라이브러리가 될 수 있습니다.

셋째는 근거와 한계를 붙이는 관행 자체입니다. 다른 에이전트 도구도 같은 습관을 채택하면 기계가 만든 분석을 검토하기가 업계 전반에서 쉬워집니다. 그렇지 않으면 REA의 방식은 유용하지만 고립된 사례로 남을 것입니다.

당장의 실용적 시험은 소박합니다. npx rea-agents setup으로 설치하고, 이미 잘 아는 앱에 돌려 본 뒤 제시된 근거가 맞는지 확인해 보면 됩니다. 그 결과가 모르는 앱에서 어디까지 믿을 수 있는지 보여 줄 것입니다.

Sources

FAQ

REA는 무엇인가요?

REA(Reverse Engineer Anything)는 AI 에이전트를 위한 리버스 엔지니어링 MCP 서버로, morluto가 관리합니다. TypeScript로 작성되었고 npm 패키지 rea-agents로 배포됩니다. 네이티브 바이너리, JavaScript 및 Electron 앱, .NET 어셈블리, 웹사이트 분석을 Claude Code, Codex, Cursor, Gemini CLI에 연결합니다.

REA가 개발자와 보안 연구자에게 왜 중요한가요?

REA는 리버스 엔지니어링을 소수 전문가의 수작업에서 AI 에이전트가 도울 수 있는 작업 흐름으로 바꿉니다. 독립 개발자와 소규모 팀은 소스 코드가 없는 기능을 더 빨리 조사해 경쟁사 분석, 호환성 문제 추적, 레거시 소프트웨어 이해에 쓸 수 있습니다. 모든 결론에는 근거와 한계 설명이 붙습니다.

REA를 사용할 때 무엇을 주의해야 하나요?

REA를 쓸 때는 세 가지를 주의해야 합니다. 타인의 소프트웨어를 분석하면 라이선스와 법적 문제가 생길 수 있어 직접 확인해야 합니다. 에이전트의 설명은 사람이 다시 검토해야 합니다. 네이티브 분석은 Hopper, Ghidra, IDA 같은 외부 도구에 좌우됩니다. 설치는 morluto/rea, rea.tools, npm 패키지에서만 하세요.