앱에서 마음에 드는 기능을 발견했을 때, 화면을 흉내 내는 것만으로는 내부 동작까지 알기 어렵습니다. morluto/rea는 에이전트가 앱과 웹사이트, 바이너리를 조사하도록 돕는 역공학 도구입니다. MCP로 에이전트에 연결하며, 같은 분석 흐름을 터미널에서도 사용할 수 있습니다.
대상 범위가 넓다는 점이 눈에 띕니다. JavaScript·Electron 앱에서는 모듈과 import, 소스맵, 라우트에 더해 IPC 경계와 네이티브 애드온 관계를 살펴봅니다. 웹사이트 분석은 페이지 구조와 스크립트, 네트워크 관찰, 요청한 스크린샷을 다룹니다. 네이티브 바이너리에서는 의사코드와 어셈블리, 문자열, 심볼, 호출 및 참조를 확인할 수 있습니다. 저장된 네트워크 캡처, .NET 어셈블리, Android APK 등도 지원 대상입니다.
REA가 반환하는 건 단정적인 설명만이 아닙니다. 분석 결과에는 근거와 한계가 포함됩니다. 에이전트는 이를 바탕으로 동작을 설명하고 추가 조사를 이어가거나, 유사 기능을 구현해 테스트할 수 있습니다. 그래서 REA의 쓰임은 ‘정답을 한 번에 알아내기’보다는, 관찰한 단서를 따라 질문과 검증을 반복하는 데 가깝습니다. 분석은 로컬에서 수행됩니다.
환경 조건은 대상마다 다릅니다. 기본 요구사항은 Node.js 22.19 이상(또는 지원되는 24·26 계열)과 npm입니다. 웹사이트 분석에는 Chrome 계열 브라우저가 필요하고, 네이티브 바이너리 분석에는 Hopper, Ghidra 또는 IDA가 필요합니다. JavaScript 정적 분석은 별도의 분석 엔진 없이 사용할 수 있어 진입 장벽이 상대적으로 낮습니다. 즉, 하나의 설치로 모든 대상과 기능을 똑같이 분석하는 구조는 아닙니다.
시작하려면 `npx rea-agents setup`을 실행해 지원 에이전트에 MCP 서버와 작업 지침을 등록합니다. 설정 변경을 살펴보고 승인해야 하며, 완료 후 에이전트를 다시 시작합니다. 터미널에서 Electron 앱을 분석할 때는 `npx -y rea-agents@latest analyze-javascript-application /절대경로 --json`을 사용할 수 있습니다. 결과에서 모듈과 Electron 경계, 각 발견의 근거를 확인할 수 있습니다.
실무에서는 막연히 ‘이 앱을 분석해줘’라고 하기보다 조사할 기능과 원하는 산출물을 함께 지정하는 편이 낫습니다. 예를 들어 특정 앱의 검색 동작을 살펴보고, 증거를 보여준 다음 우리 프로젝트에 비슷한 기능을 구현해 테스트해 달라고 요청할 수 있습니다. REA는 역공학을 자동으로 완결하는 지름길이라기보다, 에이전트의 조사 결과를 확인 가능한 단서와 연결해 다음 작업으로 이어주는 도구입니다.