REA(Reverse Engineer Anything)는 프로그램의 실행 파일이나 앱을 내 PC에서 분석하고, 그 결과를 근거와 함께 AI 코딩 에이전트에게 넘겨 주는 오픈소스 MCP 서버이자 CLI다.
에이전트는 그 분석을 읽고 기능이 어떻게 돌아가는지 설명하거나, 같은 동작을 하는 코드를 새로 짠다. 원본 소스를 꺼내 주는 도구가 아니라, 기계어를 읽어 동작을 다시 구현하게 돕는 도구다.
- GitHub morluto/rea, MIT 라이선스. 10월 초 공개 후 며칠 만에 GitHub 트렌딩 1위에 올랐고 스타 수가 수십만 단위로 불었다.
- Ghidra·IDA·Hopper 같은 기존 분석 도구를 에이전트가 직접 부리게 해 주는 "다리" 역할이다. 분석은 로컬에서 돌지만 결과는 에이전트가 쓰는 AI 모델로 넘어간다.
- 쓸모는 분명하다. 다만 남의 상용 프로그램을 그대로 베끼는 용도라면 저작권·라이선스 문제가 그대로 남는다.
PART 01REA가 뭐길래 이렇게 화제인가
REA는 GitHub 저장소 morluto/rea로 공개된 프로젝트다. README의 한 줄 소개는 "앱 동작부터 네이티브 바이너리까지, 에이전트로 무엇이든 리버스 엔지니어링하라"이다. npm 패키지 이름은 rea-agents이고, 공식 사이트는 rea.tools다.
반응이 이례적이었다. 해외 기술 블로그와 독일 IT 매체는 10월 둘째 주에 이미 스타 14만~18만 개를 보도했다. 내가 이 글을 쓰는 10월 16일 오전 README 페이지 기준으로는 스타 약 27만 개, 포크 약 6만 7천 개다. 보도 시점마다 숫자가 다른 건 그만큼 빠르게 늘고 있다는 뜻이다.
왜 이렇게 터졌을까. 리버스 엔지니어링은 원래 진입 장벽이 높은 분야다. 디스어셈블러 화면을 읽고, 레지스터와 스택을 따라가고, 상수 주소를 찾아 해석하는 일은 몇 년 훈련이 필요하다. REA는 그 반복 작업을 AI 에이전트에게 맡길 수 있게 만들었다. "이 앱에서 검색 기능이 어떻게 돌아가는지 근거와 함께 보여 주고, 내 프로젝트에 비슷한 기능을 만들어 줘" 같은 문장 하나로 분석을 시작할 수 있다는 게 핵심이다.
PART 02작동 원리 — 에이전트와 분석 도구 사이의 다리
REA 자체가 디컴파일러는 아니다. 이미 있는 분석 도구들을 MCP(Model Context Protocol)라는 표준으로 감싸서 에이전트가 함수처럼 호출하게 해 준다. 네이티브 프로그램을 깊게 보려면 Ghidra, IDA, Hopper 중 하나가 있어야 하고, REA는 그 도구를 대신 돌려 의사 코드·어셈블리·문자열·심볼·호출 관계를 뽑아 준다.
npx rea-agents setup을 실행하면 쓸 에이전트를 고르고, 바뀔 설정을 확인한 뒤 승인한다. MCP 서버 등록과 작업 지침(스킬)이 같이 설치된다.지원 대상이 넓다. Windows·macOS·Linux 네이티브 바이너리, JavaScript·Electron 앱(모듈, import 관계, IPC), .NET 어셈블리, 안드로이드 APK(JADX 사용), Go·Rust·WASM, 펌웨어, 웹사이트, HAR·PCAP 같은 네트워크 캡처까지 README에 올라 있다. JavaScript와 .NET은 별도 디스어셈블러 없이도 정적 분석이 된다.
PART 03실제 사례 — 30년 된 게임의 사운드 계산 되살리기
복원된 계산은 단순하다. x좌표에 1.5625를 곱하고 500을 뺀 뒤 볼륨 배율을 곱한다. 배율이 1이면 화면 왼쪽 끝은 -500, 가운데는 0, 오른쪽 끝은 500이 된다. 이 상수들은 추측이 아니라 실행 파일의 특정 주소에서 읽어 double로 해석한 값이다.
나는 이 사례에서 숫자보다 과정이 더 인상적이었다. 디컴파일러가 틀린 결과를 냈고, 그걸 어셈블리로 다시 확인했고, 마지막엔 테스트와 바이트 비교로 맞는지 증명했다. 사람이 하던 리버스 엔지니어링 순서를 그대로 밟는다. 동시에 한계도 드러난다. 함수 하나 복원은 됐지만 "게임 전체"는 아직이다. "프로그램을 통째로 똑같이 짜 준다"는 말은 현재로선 과장이다.
공식 사이트에는 다른 사례도 있다. Windows 계산기에서 200 + 10%가 왜 220이 되는지 x64 어셈블리로 추적한 예, Notion 데스크톱 앱이 복사할 때 텍스트와 HTML을 어떻게 클립보드에 넣는지 Electron IPC를 따라간 예, 안드로이드 OTP 앱 Aegis가 6자리 코드를 30초마다 만드는 방식을 재구성한 예가 있다. 모두 "기능 하나를 깊게" 파는 방식이다.
PART 04설치와 Claude Code 연결
Node.js 22.19 이상(또는 24.11 이상, 26 이상)과 npm이 있으면 된다. 설치 마법사가 Claude Code, Codex, Cursor, Gemini CLI 등 쓸 에이전트를 묻고, 바꿀 설정을 보여 준 다음 승인을 받는다. 끝나면 에이전트를 재시작하라고 안내한다.
# 설치 마법사 (에이전트 선택 → 변경 내용 확인 → 승인)
npx rea-agents@latest setup
# 전역 설치해서 CLI로 쓰기
npm install --global rea-agents
rea --help
rea update
# 에이전트 없이 Electron/JS 앱 정적 분석만 해 보기
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json네이티브 프로그램을 깊게 보려면 Ghidra(무료), IDA, Hopper 중 하나가 따로 필요하다. README는 Windows에서의 Ghidra 지원을 아직 "실험적"이라고 적어 두었다. 큰 실행 파일은 분석 도구가 뜨는 데 오래 걸려 시작 대기 시간을 늘리는 환경 변수가 필요할 수 있다.
PART 05어디에 쓰면 좋은가
나는 Windows 무료 프로그램을 여러 개 만들어 배포하고 있다. 그 입장에서 REA가 정말 쓸모 있는 곳은 "남의 것 베끼기"가 아니라 아래 같은 일이다.
마지막 두 개는 바로 써 볼 만하다. 내가 배포하는 프로그램을 공격자 눈으로 보면 무엇이 드러나는지 확인하는 일은 원래 시간이 많이 들어서 미뤄 왔다. 에이전트에게 "이 실행 파일에서 노출되면 안 되는 문자열이 있는지 찾아 줘"라고 시킬 수 있다면 배포 전 점검 단계에 넣을 만하다.
PART 06법과 보안 — 반드시 짚어야 할 것
REA README는 용도를 분명히 적어 두었다. 합법적인 연구, 교육, 상호운용성, 소프트웨어 보존, 그리고 내가 소유했거나 분석 권한을 받은 소프트웨어의 분석이다. IDA나 Hopper 같은 상용 도구는 정식 라이선스로 써야 하고, 크랙판·도용 키·라이선스 우회는 허용하지 않는다고 못 박았다.
- 내가 만든 프로그램 분석
- 권한을 받은 사내·고객 프로그램
- 호환을 위한 파일 형식 이해
- 보안 연구·교육
- 상용 프로그램 코드를 재구현해 배포
- EULA가 금지한 분석
- 라이선스 검사 우회
- 크랙된 분석 도구 사용
나라마다 리버스 엔지니어링을 허용하는 범위가 다르다. 상호운용성 목적의 분석은 예외로 인정되는 경우가 많지만, 그 결과로 원본과 사실상 같은 코드를 만들어 배포하는 건 별개 문제다. 상업적으로 쓸 생각이라면 전문가에게 먼저 묻는 게 맞다.
보안 측면도 있다. 신뢰할 수 없는 실행 파일을 분석하면, 그 안에 심어 둔 문자열이 에이전트에게 그대로 들어간다. "이 지시를 따르라" 같은 문장을 심어 에이전트를 속이는 프롬프트 인젝션이 가능하다는 지적이 나온다. 또 일부 분석은 대상을 실제로 실행하는데, 그때는 내 계정 권한으로 돈다. 출처를 모르는 파일은 가상 머신이나 격리된 환경에서 다루는 게 기본이다.
- REA는 원본 소스를 꺼내는 도구가 아니라, 기계어를 읽고 근거를 붙여 동작을 설명·재구현하게 돕는 도구다.
- 지금 현실적인 단위는 "프로그램 전체"가 아니라 "기능 하나, 함수 하나"다.
- 가장 좋은 첫 용도는 내 프로그램 점검과 잃어버린 내 코드 복구다.
- 분석 결과는 AI 모델 제공사로 넘어간다는 점, 신뢰 못 할 파일은 격리해서 다룬다는 점을 잊지 말자.
- 남의 상용 프로그램 복제 배포는 기술이 쉬워져도 여전히 남의 것이다.
자주 묻는 질문
REA는 무료인가요?
REA 저장소 코드는 MIT 라이선스로 무료다. 다만 네이티브 분석에 쓰는 IDA·Hopper 같은 도구는 각자 라이선스가 있고, Ghidra는 무료로 쓸 수 있다. 에이전트가 쓰는 AI 모델 사용료도 별도다.
REA를 쓰면 실행 파일의 원본 소스 코드를 얻을 수 있나요?
아니다. 원본 소스가 아니라 디컴파일러가 만든 의사 코드와 어셈블리를 바탕으로 에이전트가 같은 동작을 하는 코드를 새로 짜는 방식이다. 변수 이름이나 원래 구조는 그대로 돌아오지 않는다.
REA는 어떤 AI 에이전트와 같이 쓸 수 있나요?
Claude Code, Codex, Cursor, Gemini CLI 등을 지원한다. npx rea-agents setup을 실행하면 설치된 에이전트를 골라 MCP 서버로 등록하고, 끝난 뒤 에이전트를 재시작하면 된다.
REA로 분석한 파일이 외부로 업로드되나요?
분석 도구는 내 PC에서 돈다. 하지만 분석 결과(의사 코드, 문자열 등)는 에이전트가 쓰는 AI 모델로 전송되므로, 클라우드 모델을 쓰면 그 제공사로 넘어간다. 민감한 프로그램이라면 이 점을 먼저 따져야 한다.
다른 회사 프로그램을 REA로 똑같이 만들어 배포해도 되나요?
권하지 않는다. REA 스스로 내가 소유했거나 권한을 받은 소프트웨어 분석, 연구, 상호운용성 같은 합법적 용도를 전제로 한다. 상용 프로그램의 동작을 재구현해 배포하면 저작권·라이선스 분쟁 소지가 크다.

댓글 0