REA (Reverse Engineer Anything): AI 에이전트가 소스 없이 앱을 뜯어보고 기능을 다시 만드는 도구
AI 슬래시 채널이 GitHub에서 일주일 만에 약 19만 스타를 모은 오픈소스 REA를 정리한 영상입니다. 코딩 에이전트가 MCP로 Ghidra 같은 분석 도구를 부려 컴파일된 앱의 기능을 근거와 함께 설명하고 다시 만드는 구조를 풀고, 기업이 레거시 이해와 보안 점검에 쓰려면 갖출 법무·격리·검증 절차를 덧붙였습니다.
이제 소스 코드가 없어도, 코딩 에이전트에게 "이 기능은 어떻게 동작하나"를 물으면 컴파일된 앱 안을 추적해 근거와 함께 답하고 같은 동작을 새 코드로 짜 줍니다. 기업이 이를 쓰려면 분석해도 되는 대상인지 법무가 먼저 확인하고, 격리된 환경에서 돌리고, 다시 만든 코드는 원본과 같은 입력을 넣어 비교 검증해야 합니다.
요약
AI 슬래시 채널은 2026년 10월 14일 약 12분짜리 영상에서 REA(Reverse Engineer Anything, 무엇이든 역분석한다는 뜻의 오픈소스 프로젝트)를 다섯 부분으로 정리했습니다. REA가 무엇인지, 어떤 사례가 화제가 됐는지(ArtCraft, Steam 게임, TradingView), 어떻게 작동하는지(Claude Code, MCP, Ghidra), 어떻게 설치하는지, AI 리버스 엔지니어링으로 누가 이득을 보고 누가 손해를 보는지입니다. 영상 설명란은 이 프로젝트가 일주일 만에 GitHub 스타 약 19만 개를 모았다고 소개합니다. 저장소는 morluto/rea이고 MIT 라이선스입니다.
영상의 요지는 컴파일된 앱이 더는 닫힌 상자가 아니라는 것입니다. 사용자가 에이전트에게 기능을 물으면, 에이전트가 MCP(Model Context Protocol, AI가 외부 도구를 부르는 표준 통로)로 Ghidra 같은 역분석 도구를 조작해 관련 코드를 찾아냅니다. 그다음 작동 방식을 근거와 함께 설명하고, 같은 기능을 새로 구현합니다. 설명란은 동시에 분석 전에 약관과 저작권법을 확인하고, 내가 소유했거나 허락받은 앱에만 쓰라고 당부합니다. 아래에서는 이 구조를 다섯 메커니즘으로 풀고, 공개 자료에 나온 사례를 정리한 뒤, 기업이 레거시 이해와 보안 점검에 쓸 때 필요한 절차를 덧붙였습니다.
핵심 메커니즘
Agent–MCP–Engine: 에이전트가 역분석 도구를 직접 부리는 3층 구조
무엇인가. REA는 그 자체로 디컴파일러가 아닙니다. 코딩 에이전트와 기존 역분석 엔진 사이에 끼우는 MCP 서버이자 CLI입니다. 영상은 Claude Code가 MCP로 Ghidra를 부리는 구성을 예로 듭니다.
어떻게 작동하나. 맨 위 에이전트(Claude Code, Codex, Cursor 등)가 질문을 받아 도구를 호출합니다. 가운데 REA는 그 호출을 받아 대상 형식에 맞는 엔진을 띄웁니다. 맨 아래 엔진(Ghidra, Hopper, IDA)이 함수 목록, 의사코드(pseudo-code, 기계어를 사람이 읽기 쉬운 형태로 되돌린 코드), 문자열, 상호참조를 뽑아 돌려줍니다. 공개 문서에 따르면 설정 마법사가 17개 에이전트를 지원하고, 도구 수는 1.0.0의 68개에서 6.0.0의 139개로 늘었습니다.
언제 쓰고 언제 안 쓰나. 실행 파일은 있는데 소스가 없거나, 문서와 실제 동작이 다른지 확인해야 할 때 씁니다. 서버에서 처리하는 기능은 실행 파일에 로직이 없으므로 이 구조로 볼 수 없습니다.
작은 예시(가상). 공급사가 문을 닫은 사내 정산 프로그램에서 “반올림 규칙이 어디서 정해지나”를 묻습니다. 에이전트가 관련 함수 세 개를 찾아 의사코드와 함께 규칙을 설명합니다.
Evidence & Unknowns: 근거와 ‘모르는 것’을 함께 돌려주는 반복 루프
무엇인가. REA는 분석 결과를 사람이 읽는 문장이 아니라 구조화된 데이터로 돌려줍니다. 여기에는 확인된 근거(evidence)와 확인하지 못한 항목(unknowns)이 함께 담깁니다.
어떻게 작동하나. 에이전트가 open_binary 같은 도구로 대상을 엽니다. REA가 근거와 미확인 항목을 돌려주면, 에이전트는 그걸 읽고 다음에 볼 함수나 호출 경로를 고릅니다. 이 과정을 기능을 설명할 수 있을 때까지 되풀이합니다. 영상 설명란이 강조한 “근거와 함께 설명한다”는 점이 바로 이 루프의 결과입니다.
언제 쓰고 언제 안 쓰나. 결론보다 결론에 이른 경로가 중요한 감사·보안 점검에 맞습니다. 프로젝트 측도 역컴파일과 AI 분석은 틀릴 수 있으니 중요한 결론 전에 근거를 검증하라고 밝혔습니다.
작은 예시(가상). 보안팀이 협력사 앱이 어떤 서버로 데이터를 보내는지 묻습니다. 결과에는 확인된 도메인 2개와 “암호화된 설정에서 읽는 주소 1개는 미확인”이 함께 나옵니다.
Clean-room Reimplementation: 코드를 베끼지 않고 동작을 다시 짜는 방식
무엇인가. 원본 코드를 복사하지 않고, 관찰한 동작과 명세만으로 같은 기능을 처음부터 새로 쓰는 방식입니다. REA README는 원본 소스를 복구하거나 앱을 자동으로 복제한다고 주장하지 않습니다.
어떻게 작동하나. 분석 결과에서 입력과 출력의 관계를 뽑아 동작 명세로 만듭니다. 에이전트가 그 명세로 새 코드를 쓰고, 원본과 새 코드에 같은 입력을 넣어 출력이 같은지 비교합니다(차등 테스트). 공개된 DX-Ball 데모에서는 이 비교가 3,205개 케이스에서 일치했습니다.
언제 쓰고 언제 안 쓰나. 레거시 기능을 새 플랫폼으로 옮기거나 호환 모듈을 만들 때 씁니다. 보호받는 코드나 자산을 그대로 옮기는 용도로는 쓰지 않습니다. 프로젝트 측도 상용 소프트웨어의 보호 코드 복제에 쓰지 말라고 명시했습니다.
Target Coverage: 대상 형식마다 필요한 엔진이 다르다
무엇인가. REA가 다루는 대상은 네이티브 실행 파일, JS/Electron 앱, .NET, 웹사이트, 안드로이드 APK, 펌웨어, EVM 스마트 컨트랙트 바이트코드까지 넓습니다. 형식마다 뒤에서 도는 엔진과 실행 환경이 다릅니다.
어떻게 작동하나. 네이티브 바이너리는 Hopper, Ghidra, IDA 가운데 하나가 있어야 합니다. JS/Electron과 .NET은 추가 엔진 없이 됩니다. APK는 JADX와 JDK 17 이상이, 펌웨어는 Linux의 Binwalk나 Unblob이, 웹사이트는 Chrome 계열 브라우저가 필요합니다. 공식 지원 호스트는 macOS 12 이상과 최신 Linux이고, Windows에서는 네이티브 분석이 실험 단계입니다.
언제 쓰고 언제 안 쓰나. 사내 앱 상당수가 Electron이나 .NET이라면 엔진 비용 없이 바로 시험할 수 있습니다. 네이티브 바이너리가 대상이면 엔진 선택이 곧 비용입니다. Ghidra는 무료, Hopper 개인 라이선스는 99달러, IDA는 연 365달러부터입니다.
Agent-led Install: 설치도 에이전트에게 맡긴다
무엇인가. 영상의 네 번째 부분은 설치를 다룹니다. 터미널 명령 한 줄로 끝나고, 그 명령조차 에이전트에게 맡길 수 있다는 내용입니다.
어떻게 작동하나. Node.js 22.19 이상 환경에서 npm 패키지 rea-agents를 실행하면 설정 마법사가 뜹니다. 마법사는 쓰는 에이전트에 REA를 MCP 서버로 등록하고 에이전트용 스킬도 깔아 줍니다(Claude Code는 ~/.claude/skills).
언제 쓰고 언제 안 쓰나. 개인 실험에는 이 방식이 가장 빠릅니다. 회사 환경에서는 그대로 쓰지 않습니다. 마이너 버전에서도 호환되지 않는 변경이 들어가므로(6.0.0부터 절대 경로 필수), 자동화할 때는 npx rea-agents@6.3.0처럼 버전을 고정하라는 것이 공개 문서의 권고입니다.
통념과 다른 주장
흔히 이렇게 봅니다컴파일된 앱의 내부는 숙련된 리버스 엔지니어가 며칠씩 매달려야 겨우 보이는 영역이다.
영상은 이렇게 봅니다코딩 에이전트에게 기능을 물으면 앱 내부를 추적해 근거와 함께 설명하고, 그 기능을 다시 구현하는 데까지 간다.
근거일주일 만에 약 19만 스타가 붙은 반응과, ArtCraft·Steam 게임·TradingView 같은 화제 사례를 듭니다. 작동 방식으로는 Claude Code가 MCP로 Ghidra를 부리는 구성을 보여 줍니다.
저자가 든 사례
영상은 ArtCraft, Steam 게임, TradingView를 사례로 다룹니다. 이 노트는 영상 자막을 확인하지 못해, 각 사례의 세부는 공개 기사와 프로젝트 문서에 실린 사실로만 정리했습니다. Steam 게임과 TradingView 사례는 공개 자료에서 세부를 찾지 못해 넣지 않았습니다.
DX-Ball: 1996년 게임의 함수 하나를 바이트 단위까지 재현
| 상황 | 한 일 | 결과 | 연결 |
|---|---|---|---|
| 1996년 윈도 게임 DX-Ball 1.07에서, 벽돌의 가로 위치를 좌우 사운드 값으로 바꾸는 함수 하나를 대상으로 삼음 | 첫 디컴파일은 인자가 없다고 잘못 읽었으나, 에이전트가 원시 명령과 호출부를 다시 읽어 정수 인자를 찾음. C로 재구현 | 원본과 비교한 3,205개 케이스가 일치하고, 당시 컴파일러로 다시 빌드하자 기계어 63바이트도 일치 | Evidence & Unknowns 루프, Clean-room Reimplementation |
ArtCraft: 관찰한 동작으로 Adobe·Office 같은 앱을 새로 쓰기
| 상황 | 한 일 | 결과 | 연결 |
|---|---|---|---|
| 개발자 Brandon Thomas가 Adobe 구독 해지 수수료를 여러 번 낸 일을 계기로 대체 앱을 만들기로 함 | Claude로 Rust 기반 무료 앱 모음을 만듦(PhotoCraft, VectorCraft, FilmCraft, WordCraft 등). 원본 코드 없이 공개 문서와 관찰한 동작으로 작성했다고 밝힘 | 아직 초기 알파 단계. 한 달 안에 기능을 맞추겠다던 목표는 수개월로 미룸. WordCraft 실사용 기능 호환률은 개발자 추정 약 62% | Clean-room Reimplementation. 기사들은 REA와 같은 흐름으로 묶어 소개함 |
Notion: 서식 있는 복사가 클립보드로 넘어가는 경로 추적
| 상황 | 한 일 | 결과 | 연결 |
|---|---|---|---|
| Notion에서 서식이 들어간 문서를 복사할 때 내부에서 어떤 일이 일어나는지 궁금함 | REA로 Electron 앱의 관련 코드를 추적 | 데이터가 클립보드로 전달되는 내부 과정을 설명함(원문에서 수치는 밝히지 않음) | Target Coverage(Electron은 추가 엔진 불필요), Agent–MCP–Engine |
기술 디테일: 회사에서 REA를 안전하게 돌리려면
Agent–MCP–Engine 구조를 회사 환경에 올리려면 분석 전용 가상 머신을 따로 둡니다. 대상 바이너리는 실행될 수 있으니 사내망과 분리하고, 인터넷은 모델 API 도메인만 열어 둡니다. 설치는 마법사 대신 버전을 고정한 명령으로 하고, 엔진은 Electron·.NET 대상이면 생략, 네이티브 대상이면 무료인 Ghidra부터 시작합니다. 가장 흔한 실패는 상대 경로입니다. 6.0.0부터 절대 경로가 필수이므로 대상 파일 경로를 절대 경로로 넘기는지 먼저 확인합니다.
Evidence & Unknowns 루프를 감사 기록으로 남기려면 에이전트의 최종 답을 아래 같은 구조로 저장하게 합니다. 핵심은 unknowns를 비우지 않는 것입니다. 미확인 항목이 0개인 보고서는 오히려 다시 봐야 할 신호로 다룹니다. 같은 질문을 temperature 0으로 3회 돌려 claims가 서로 다르면, 그 항목은 사람이 직접 확인합니다.
{
"question": "정산 금액 반올림 규칙은 어디서 정해지나",
"target": { "path": "/analysis/legacy/settle.exe", "sha256": "…", "engine": "ghidra", "rea_version": "6.3.0" },
"claims": [
{ "id": "c1", "statement": "소수 둘째 자리에서 반올림", "evidence": ["FUN_00412a30 의사코드 L14-L22", "xref: 0x00413b10"], "confidence": "high" }
],
"unknowns": ["설정 파일에서 읽는 통화별 예외 규칙"],
"analyzed_at": "2026-10-25T14:00:00+09:00",
"reviewer": null
}
Clean-room Reimplementation을 검증하려면 DX-Ball 데모처럼 차등 테스트를 기준으로 삼습니다. 원본 기능과 새 코드에 같은 입력 세트를 넣고 출력을 비교합니다. 입력은 실제 운영 로그에서 뽑은 값과 경계값(0, 음수, 최대값, 빈 값)을 섞어 최소 1,000건을 만듭니다. 판정 기준은 아래처럼 둡니다(예시).
| 점수 | 기준 |
|---|---|
| 0 | 불일치 1% 초과, 또는 경계값에서 예외 발생 |
| 3 | 불일치 0.1~1%, 원인이 모두 unknowns에 기록됨 |
| 5 | 1,000건 이상 전부 일치, 사람이 근거 3건 이상 확인함 |
현업 실행 디테일: 누가, 언제, 무엇을
역할
| 역할 | 담당 | 하는 일 |
|---|---|---|
| 법무 | 법무팀 1명 | 대상의 소유권·라이선스 약관 확인, 분석 승인서 발행 |
| 보안 | 보안팀 1명 | 격리 환경 구성, 결과의 보안 영향 판정 |
| 레거시 오너 | 해당 시스템 담당 현업 1명 | 질문 목록 작성, 설명이 실제 업무와 맞는지 확인 |
| 엔지니어 | 개발자 1~2명 | REA 운영, 결과 저장, 차등 테스트 |
시작 전 준비물. 분석 대상 목록과 각 대상의 소유·계약 근거, 격리된 분석용 VM 한 대, 모델 API 예산(의사코드가 길어 토큰을 많이 씀), 레거시 오너가 쓴 질문 5~10개.
4주 파일럿 일정(예시)
| 기간 | 할 일 | 산출물 |
|---|---|---|
| 1주차 | 법무 승인, 대상 1개 선정, VM 구성 | 분석 승인서, 환경 구성서 |
| 2주차 | 질문 5~10개 분석, 결과를 JSON으로 저장 | 분석 기록, 미확인 목록 |
| 3주차 | 핵심 기능 1개 재구현, 차등 테스트 | 테스트 결과(0·3·5점) |
| 4주차 | 레거시 오너 검토, 확대 여부 판정 | 판정 보고서 |
레거시 오너에게 물을 질문. 이 기능의 결과가 틀렸을 때 누가 가장 먼저 알아차리나? 문서에 적힌 규칙과 실제 결과가 달랐던 적이 있나? 이 프로그램이 의존하는 서버나 설정 파일은 무엇인가?
진행 판정 기준(예시). 질문의 70% 이상에 근거 달린 답이 나오고, 재구현한 기능이 차등 테스트 5점을 받고, 법무가 다음 대상 3개를 승인하면 확대합니다.
엔터프라이즈 AX 관점에서 REA가 먼저 쓰일 곳은 세 군데입니다. 첫째는 공급사가 사라진 레거시 시스템의 업무 규칙 복원입니다. ERP 전환 전에 숨은 규칙을 꺼내는 데 바로 쓸 수 있습니다. 둘째는 협력사 앱과 사내 배포 앱의 보안 점검입니다. 셋째는 방어 쪽입니다. 우리 앱도 누구나 이렇게 읽을 수 있게 됐다는 뜻이므로, 클라이언트에 심은 비밀 키와 가격 로직을 서버로 옮기는 점검을 CISO 과제로 올려야 합니다. 시작은 법무가 승인한 자사 소유 레거시 하나로 좁히고, 첫 성과는 “재구현”이 아니라 “근거 달린 업무 규칙 문서”로 잡는 편이 안전합니다.
원문 사례
| 항목 | 내용 |
|---|---|
| 영상 | AI 슬래시 “[Deep SLASH] 개발자들 단체 멘붕…깃허브 발칵 뒤집은 ‘REA’ 완벽 정리”, 2026.10.14, 11분 58초 |
| 구성 | REA란 무엇인가 / 사례(Steam, ArtCraft, TradingView) / 작동 원리(Claude Code, MCP, Ghidra) / 설치 / AI 리버스 엔지니어링을 보는 관점 |
| 영상이 밝힌 수치 | 일주일 만에 GitHub 스타 약 19만 개 |
| 저장소 | github.com/morluto/rea, MIT 라이선스, 2026년 4월 생성 |
| 이후 수치(공개 기사) | 10월 19일 스타 32만 개 이상(ZDNet Korea) |
| 영상의 당부 | 분석 전 약관·저작권법 확인, 소유했거나 허락받은 앱에만 사용 |
| 업계 반응(공개 기사) | 10월 13일 HSBC가 AI 무료 대체재 영향을 반영해 Adobe 투자의견을 낮춤 |
핵심 개념
- 리버스 엔지니어링(reverse engineering)
- 완성된 제품이나 실행 파일을 거꾸로 분석해 어떻게 만들어졌는지 알아내는 일.
- Ghidra
- 미국 NSA가 공개한 무료 역분석 도구. 실행 파일을 의사코드로 되돌려 보여 준다.
- Hopper · IDA
- 유료 역분석 도구. REA는 셋 중 하나를 네이티브 바이너리 분석 엔진으로 쓴다.
- 디컴파일(decompile)
- 기계어로 컴파일된 코드를 사람이 읽을 수 있는 고급 언어 형태로 되돌리는 일. 원래 소스와 똑같지는 않다.
- 차등 테스트(differential testing)
- 두 구현에 같은 입력을 넣고 출력이 같은지 비교하는 검증 방법.
- Electron
- 웹 기술로 데스크톱 앱을 만드는 틀. Notion, Slack 같은 앱이 쓴다.
내 메모
TODO: 내 생각 추가
원문: AI 슬래시, “[Deep SLASH] 개발자들 단체 멘붕…깃허브 발칵 뒤집은 ‘REA’ 완벽 정리”(2026.10.14). 영상 자막은 확인하지 못해, 요약과 구성은 영상의 챕터 목록과 설명란을 바탕으로 AX Review가 다시 정리했습니다. 메커니즘과 사례의 세부는 공개 자료로 보강했습니다: REA 저장소 README와 정리 글(capitalandcompute.net), ZDNet Korea “만드는 법 몰라도 AI가 프로그램 재현…’REA’ 뭐길래”(2026.10.19), Decrypt “From GTA V on iPhone to Free Photoshop”, KDnuggets “The Rise of AI Software Clones”. 기술·현업 디테일, JSON 예시, 판정 기준, 일정, 인포그래픽, 표는 새로 작성한 것이며 숫자는 가상 예시입니다. 이 노트는 법률 자문이 아니며, 실제 분석 전에는 법무 검토가 필요합니다. 영상 전체는 YouTube에서 볼 수 있습니다.