REA는 에이전트로 앱을 어떻게 역공학할까?

REA(Reverse Engineer Anything)는 morluto가 만든 오픈소스 도구로, AI 코딩 에이전트가 소스 코드 없이 완성된 프로그램을 거꾸로 분석하게 해 줍니다(github.com/morluto/rea, MIT 라이선스). 2026년 10월 trendshift 주간 순위 1위에 올랐고, 2026년 10월 26일 기준 GitHub 별이 38만 개를 넘었으며 최신 버전은 6.8.0입니다.

"이 앱의 이 기능은 어떻게 만들었을까?" 하는 궁금증은 개발자라면 누구나 가져 봤을 겁니다. 예전에는 Ghidra 같은 전문 분석 도구를 직접 다룰 줄 알아야 답을 찾을 수 있었습니다. REA는 이 도구들을 에이전트에 연결해, 평소 말하듯 물어보면 에이전트가 분석하고 근거와 함께 설명하게 합니다. 이 글에서는 REA가 어떻게 동작하는지, 실제로 어떻게 쓰는지, 그리고 쓸 때 꼭 지켜야 할 선을 정리합니다.

핵심 요약

  • REA는 Ghidra·Hopper·IDA 같은 역공학 도구를 MCP 서버로 묶어, Claude Code·Codex·Cursor 같은 코딩 에이전트가 직접 쓰게 해 주는 도구입니다.
  • 실행 파일, Electron 앱, 안드로이드 APK, 웹사이트, .NET 등 30가지가 넘는 대상을 분석하고, 결론마다 근거와 아직 모르는 점을 함께 돌려줍니다.
  • 분석은 내 컴퓨터에서 이뤄지며, 내가 소유했거나 분석 권한이 있는 소프트웨어에만 써야 합니다.

역공학은 완성된 프로그램에서 설계를 거꾸로 찾는 일입니다

역공학(리버스 엔지니어링)은 완성된 제품을 분해해 어떻게 만들었는지 알아내는 일입니다. 소프트웨어에서는 소스 코드 없이 실행 파일이나 배포된 앱만 보고, 어떤 기능이 어디에서 어떻게 구현되는지 추적하는 작업을 말합니다. 악성 코드 분석, 보안 취약점 연구, 오래된 프로그램 복원, 다른 프로그램과 연동하기 위한 형식 파악 등에 쓰입니다.

문제는 어렵다는 점입니다. 실행 파일은 사람이 읽기 힘든 기계어로 되어 있어, 이를 어셈블리나 의사 코드(원래 코드와 비슷하게 되살린 코드)로 바꿔 주는 Ghidra, IDA, Hopper 같은 도구를 써야 합니다. 이 도구들은 기능이 많은 만큼 배우기가 어렵고, 함수 수천 개 사이에서 원하는 기능을 찾는 데 시간이 오래 걸립니다.

코딩 에이전트에 역공학 도구를 붙여 줍니다

그림 1

REA는 이 도구들을 MCP(AI 에이전트가 외부 도구를 쓰게 해 주는 표준 연결 방식) 서버로 묶습니다. 에이전트가 질문을 받으면 REA를 통해 대상 파일을 열고, 관련 코드를 찾아 따라가고, 결과를 받아 다음 질문을 이어 갑니다. 같은 기능을 터미널 명령(CLI)으로도 쓸 수 있습니다.

REA가 돌려주는 결과에는 결론만 있는 것이 아니라 그 결론의 근거(코드 위치, 참조 관계, 의사 코드)와 아직 확인하지 못한 점이 함께 들어 있습니다. 에이전트가 그럴듯하게 지어내는 대신 근거를 들어 설명하게 하려는 설계입니다. 분석은 내 컴퓨터에서 이뤄지고, 결과만 에이전트에 전달됩니다. 다만 README는 에이전트가 쓰는 AI 모델 회사에는 그 회사의 데이터 정책이 따로 적용된다고 밝혀 두었습니다.

실행 파일부터 웹사이트까지 분석할 수 있습니다

그림 2

README의 지원 대상 표에는 30가지가 넘는 형식이 정리되어 있습니다. 실행 파일은 Hopper, Ghidra, IDA 중 하나가 있어야 깊이 분석할 수 있고, JavaScript·Electron 앱과 .NET은 별도 분석 도구 없이 REA만으로 파일을 읽어 분석합니다. 안드로이드 APK는 JADX, 웹사이트는 Chrome 계열 브라우저를 함께 씁니다.

그 밖에도 Go·Rust 실행 파일의 의존성 정보, Unity·Godot 게임 데이터, AI 모델 파일(GGUF, safetensors)의 구조, 펌웨어, 크래시 로그, 네트워크 캡처까지 다룹니다. 이 중 정적 분석은 파일을 읽기만 하고 프로그램을 실행하지 않지만, 실행 동작이나 네트워크를 캡처하는 분석은 내 권한으로 대상을 실제로 실행하므로 주의가 필요합니다.

설치하고 평소 말하듯 물어보면 됩니다

Node.js 22 이상과 npm이 있으면 명령 하나로 설치합니다. 설치 도구가 사용할 에이전트를 고르게 하고, 바뀔 설정을 보여 준 뒤 승인을 받아 MCP 서버와 작업 지침을 등록합니다. 기존 설정은 백업해 둡니다.

npx rea-agents setup

설치 후 에이전트를 다시 시작하고, 궁금한 기능을 그대로 물어보면 됩니다. README의 예시 질문은 다음과 같습니다.

Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

"메모 앱의 검색이 어떻게 동작하는지 근거와 함께 보여 주고, 내 프로젝트에 비슷한 기능을 만들어 줘"라는 뜻입니다. 앱 이름과 기능만 바꿔 쓰면 됩니다. 에이전트 없이 터미널에서 Electron 앱 폴더를 바로 분석할 수도 있습니다.

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

결과에는 앱을 이루는 모듈, 모듈 사이의 import 관계, Electron의 화면 영역과 시스템 영역 사이 경계가 근거와 함께 나옵니다.

실제 분석 사례를 보면 쓰임새가 분명해집니다

공식 사이트(rea.tools)에는 REA로 분석한 사례가 공개되어 있습니다.

  • Notion의 복사 기능 추적: "Notion이 텍스트와 HTML을 시스템 클립보드에 어떻게 복사하는지 단계별로 코드와 함께 보여 줘"라고 물었습니다. REA는 Notion 데스크톱 앱(7.6.1)의 preload 스크립트에서 웹 화면에 노출된 클립보드 함수를 찾고, notion:clipboard:write라는 IPC 통로를 따라 메인 프로세스의 처리 코드까지 추적했습니다. 그 결과 Notion이 텍스트와 HTML을 함께 복사하고, 블록 구조는 별도 형식으로 저장해 두었다가 붙여넣을 때 되살린다는 것을 밝혔습니다. Notion끼리 붙여넣으면 서식이 유지되는 이유입니다.
  • 옛 게임 DX-Ball의 소리 계산 복원: 공이 부딪힐 때 소리가 왼쪽·오른쪽 어디서 날지 정하는 함수를 찾아, 불완전한 의사 코드를 C 코드로 되살렸습니다. 되살린 코드는 원본 x86 함수와 3,205개 테스트에서 같은 결과를 냈고, 컴파일하면 원본 함수 63바이트와 똑같이 나왔습니다.
  • AI 학습용 환경 만들기: 웹 앱을 쓰는 동안 기록한 요청과 응답으로 에이전트가 연습할 수 있는 가짜 환경을 만듭니다. 원래 서비스를 건드리지 않고 AI 에이전트를 강화학습(RL)으로 훈련하거나 평가할 때 씁니다.

분석할 권한이 있는 소프트웨어에만 써야 합니다

역공학은 강력한 만큼 법적 경계가 분명합니다. REA의 면책 문서(DISCLAIMER.md)는 보안 연구, 악성 코드 분석, 취약점 연구와 책임 있는 공개, CTF와 교육, 호환성 확보, 소프트웨어 보존, 내가 소유했거나 분석 권한을 받은 소프트웨어의 디버깅과 감사를 정당한 용도로 듭니다.

반대로 복제 방지(DRM)나 라이선스 확인 우회, 게임 핵 제작, 남의 시스템 인증 우회, 상용 소프트웨어 코드 복제는 지원하지 않는다고 못 박았습니다. 나라와 소프트웨어 이용 약관에 따라 역공학 자체가 제한될 수 있고, 프로그램 파일을 갖고 있다는 사실만으로 모든 분석이 허락되는 것도 아닙니다. IDA나 Hopper 같은 유료 분석 도구도 정식 라이선스로 써야 합니다. 사례처럼 "다른 앱의 기능을 보고 내 프로젝트에 비슷하게 만드는" 경우에도 원리를 이해하는 데서 그치고, 코드와 디자인을 그대로 가져오지 않도록 주의해야 합니다.

구분 내용 시사점
하는 일 역공학 도구를 MCP로 묶어 코딩 에이전트에 연결 전문 도구를 몰라도 말로 물어 분석할 수 있습니다
분석 대상 실행 파일, Electron, APK, 웹사이트, .NET 등 30가지 이상 대상에 따라 Ghidra·JADX 등 추가 도구가 필요합니다
결과 결론 + 코드 위치·참조 등 근거 + 모르는 점 에이전트의 설명을 직접 검증할 수 있습니다
설치 npx rea-agents setup (Node.js 22 이상) Claude Code, Codex, Cursor, Gemini CLI 등 지원
사용 범위 소유했거나 분석 권한이 있는 소프트웨어 DRM 우회, 게임 핵, 코드 복제에는 쓸 수 없습니다

정리하며

REA는 Ghidra나 IDA 같은 역공학 도구를 AI 코딩 에이전트에 연결해, "이 기능은 어떻게 동작할까?"를 말로 물어보고 근거와 함께 답을 받게 해 주는 도구입니다. 실행 파일부터 Electron 앱, APK, 웹사이트까지 대상이 넓고, 결론마다 근거와 한계를 함께 돌려준다는 점이 특징입니다.

보안 연구자에게는 분석 시간을 줄여 주는 도구이고, 일반 개발자에게는 잘 만든 앱의 구조를 배우는 교재가 될 수 있습니다. 다만 쓰기 전에 그 소프트웨어를 분석할 권한이 있는지 먼저 확인해야 합니다.

원본: REA · morluto · MIT 라이선스 · github.com/morluto/rea, 공식 사이트 rea.tools. 버전과 별 수, 지원 대상은 2026년 10월 26일 기준 GitHub 저장소와 npm 배포 정보, 공식 사례 페이지를 바탕으로 정리했습니다.

한마디로 정리하면

REA는 AI 조수에게 쥐여 주는 정밀 분해 공구 세트와 같습니다. 잘 만든 시계를 보고 "어떻게 이렇게 정확하게 가지?" 궁금할 때, 예전에는 시계 수리 기술을 직접 배워야 뜯어볼 수 있었습니다.

이제는 공구 세트를 받은 조수에게 "이 톱니가 어떻게 맞물리는지 보여 줘"라고 말하면, 조수가 뚜껑을 열고 부품을 하나씩 짚어 가며 "이 톱니가 저 톱니를 돌리고, 여기는 아직 확실하지 않다"고 설명해 줍니다.

다만 분해해도 되는 시계는 내 시계이거나 허락받은 시계뿐입니다. 남의 시계를 몰래 열거나 그대로 베껴 팔면 안 되는 것처럼, REA도 원리를 배우고 내 소프트웨어를 지키는 데 쓰는 도구입니다.

반응형