REA 사용법 – AI 리버스 엔지니어링 오픈소스 도구 설치 방법과 활용 예시

소스 코드 없이도 AI 에이전트가 프로그램의 작동 원리를 분석하게 해 주는 오픈소스 도구 REA(Reverse Engineer Anything)가 깃허브에서 화제입니다.

외신 디크립트에 따르면 10월 6일까지 1만 개가 안 되던 깃허브 스타가 10월 12일 10만 개를 넘었고, 10월 14일에는 21만 개를 넘었습니다. 클로드 코드(Claude Code), 코덱스(Codex), 커서(Cursor) 같은 코딩 에이전트에 연결해 "이 앱의 이 기능은 어떻게 동작해?"라고 물으면, 근거와 함께 설명하고 비슷한 기능을 만들어 줍니다.

이번 포스팅에서는 REA가 무엇인지, 분석할 수 있는 대상, 설치부터 첫 분석까지의 REA 사용법, 공식 활용 예시, 그리고 쓰기 전에 꼭 알아야 할 법적·보안 주의 사항까지 정리하겠습니다.

REA(Reverse Engineer Anything)란?

REA는 '무엇이든 리버스 엔지니어링'이라는 이름처럼, AI 에이전트에게 소프트웨어 분석 도구를 쥐여 주는 오픈소스 프로젝트입니다. 공식 소개 문구는 "하나의 MCP로 바이너리, 애플리케이션, 런타임 동작을 리버스 엔지니어링합니다"입니다.

※ 리버스 엔지니어링(역공학)은 완성된 프로그램 자체를 조사해 그 소프트웨어가 어떻게 작동하는지 알아내는 일을 말합니다. MCP(모델 컨텍스트 프로토콜)는 AI 에이전트가 외부 도구를 불러 쓸 수 있게 해 주는 연결 규격입니다.

REA가 직접 디컴파일러를 새로 만든 것은 아닙니다. 기드라(Ghidra), 하퍼(Hopper), IDA 같은 기존 분석 도구와 AI 에이전트 사이를 이어 주는 다리 역할을 합니다. 에이전트가 MCP로 REA를 부르면 REA가 대상을 검사해 결과와 근거를 돌려주고, 에이전트는 이를 바탕으로 동작을 설명하거나 비슷한 기능을 구현합니다.

REA 사용법 – 하퍼(Hopper) 안에서 분석 브리지를 실행해 바이너리를 검사하는 화면
REA 사용법 – 하퍼(Hopper) 안에서 분석 브리지를 실행해 바이너리를 검사하는 화면

저장소는 2026년 4월 깃허브 계정 morluto가 만들었고, MIT 라이선스로 공개되어 누구나 무료로 쓸 수 있습니다. 개발자의 실명이나 소속은 공식적으로 공개되지 않았습니다. 한국어 README와 한국어 웹사이트(rea.tools/ko)도 제공합니다.

REA가 화제가 된 이유


REA는 4월에 만들어진 뒤 한동안 주목받지 못하다가 10월 초 갑자기 퍼졌습니다. 10월 9일(현지 시간)에는 깃허브 트렌딩 1위 저장소로 소개됐고, 저장소 README에는 "깃허브 스타 20만 개, 감사합니다"라는 문구가 올라왔습니다. 10월 14일 기준 포크(fork)도 5만 4천여 개입니다.

개발 속도도 빠릅니다. 깃허브 릴리스 기록을 보면 10월 3일 3.2.0부터 10월 11일 6.4.0까지 9일 동안 11번 새 버전이 나왔습니다. 6.4.0에서는 ADB를 통한 안드로이드 기기 분석과 JEB 연동 등이 추가됐습니다.

화제가 된 이유로는 낮아진 진입 장벽이 꼽힙니다. 예전에는 어셈블리 명령을 하나하나 읽고 함수 호출을 따라가야 했던 작업을, 이제는 설정만 마치면 에이전트에게 평소 말투로 질문해 맡길 수 있습니다. 앞서 소개한 AI 소프트웨어 엔지니어 데빈이 코드를 짜는 쪽이었다면, REA는 이미 만들어진 프로그램을 읽는 쪽에 AI를 붙인 셈입니다.

REA로 분석할 수 있는 대상

REA 사용법을 익히기 전에 무엇을 분석할 수 있는지부터 보겠습니다. 실행 파일부터 웹사이트까지 다루며, 공식 README에 정리된 주요 대상과 필요한 도구는 아래와 같습니다.

분석 대상REA가 돌려주는 정보필요한 도구
네이티브 실행 파일·라이브러리의사 코드, 어셈블리, 문자열, 심볼, 호출·참조 관계하퍼, 기드라, IDA 중 하나
자바스크립트·일렉트론 앱모듈, 임포트, 소스맵, 라우트, 프로세스 간 통신(IPC)Node.js와 npm
웹사이트페이지 구조, 스크립트, 네트워크 관찰, 요청한 스크린샷크롬 계열 브라우저
.NET 어셈블리메타데이터, CIL 명령, 네이티브 의존성없음(정적 분석)
안드로이드 APK매니페스트, 클래스, 디컴파일된 메서드와 참조JADX와 JDK
Go·Rust 실행 파일Go: 컴파일러 버전·모듈 / Rust: 크레이트와 의존 관계(cargo-auditable로 빌드한 경우)없음(내장 기능)
펌웨어영역 구성, 추출 결과리눅스의 Binwalk 또는 Unblob

※2026. 10. 14(수) 기준

이 밖에도 웹어셈블리(WASM), SQLite 데이터베이스, 저장된 네트워크 캡처(HAR), 패킷 캡처 등을 지원합니다. 자바스크립트와 .NET 정적 분석은 파일만 읽고 프로그램을 실행하지 않지만, 런타임 캡처는 사용자 권한으로 대상을 실제로 실행하거나 조작합니다.

✅ 노션처럼 일렉트론으로 만든 데스크톱 앱은 별도 분석 엔진 없이 Node.js와 npm만 있으면 분석할 수 있어 처음 써 보기에 부담이 적습니다.

REA 사용법 – 설치부터 첫 분석까지


REA를 쓰려면 Node.js와 npm이 필요하고, 코딩 에이전트에 연결해 쓰거나 터미널에서 바로 쓸 수 있습니다. 공식 시작 가이드에서 안내하는 REA 사용법을 순서대로 정리했습니다.

REA 사용법 1단계 – Node.js 버전 확인

REA는 Node.js 22.19 이상의 22.x, 24.11 이상의 24.x, 또는 26 이상이 필요합니다. 터미널에서 node -v를 입력해 버전을 확인하고, 없거나 낮으면 Node.js 24 LTS를 설치합니다. 윈도우에서는 PowerShell에 winget install OpenJS.NodeJS.LTS를 입력하면 됩니다.

윈도우 PowerShell에서 npx를 실행할 때 '이 시스템에서 스크립트를 실행할 수 없으므로'라는 오류가 나오면 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned를 한 번 실행한 뒤 다시 시도하세요.

REA 사용법 2단계 – 코딩 에이전트에 연결

터미널에서 npx rea-agents@latest setup을 실행합니다. 연결할 에이전트를 고르면 REA가 바꿀 설정 계획을 먼저 보여 주고, 승인해야 적용합니다. 기존 설정은 자동으로 백업됩니다.

명령어가 낯설다면 코딩 에이전트에게 아래 문장을 그대로 붙여 넣어도 됩니다. 공식 한국어 사이트에 있는 설치 요청 문구입니다.
npx rea-agents@latest setup을 사용해 REA를 설치하고 이 코딩 에이전트에 연결해 줘. 먼저 설정 변경 계획을 보여 주고 내 승인을 받은 뒤 실행해 줘. 마지막으로 설치를 확인해 줘.

설정이 끝나면 에이전트를 다시 시작해야 REA 도구가 보입니다. 클로드 코드·코덱스 같은 터미널 에이전트는 세션을 종료했다가 다시 열고, 커서·VS Code 같은 데스크톱 앱은 창만 닫지 말고 완전히 종료한 뒤 다시 실행합니다.

설치 도구가 연결해 주는 에이전트는 클로드 코드, 클로드 데스크톱, 코덱스, 커서, 제미나이 CLI, 윈드서프, 데빈, VS Code, 깃허브 코파일럿 CLI, 그록 빌드 등 20개가 넘습니다. 공식 가이드는 코딩 에이전트가 없다면 클로드 코드(유료 클로드 요금제 필요), 코덱스(챗GPT 계정으로 로그인), 오픈코드(오픈소스) 중 하나로 시작하라고 안내합니다. 클로드 코드에서 쓸 모델이 궁금하다면 클로드 오퍼스 5.5의 성능과 가격도 참고해 보세요.

REA 사용법 3단계 – 에이전트에게 질문하기

이제 분석할 대상의 경로와 알고 싶은 기능을 구체적으로 적어 질문합니다. 공식 README의 예시 프롬프트는 다음과 같습니다.
Notes 앱의 검색 기능이 어떻게 작동하는지 조사하고, 근거를 보여 준 다음, 내 프로젝트에 비슷한 기능을 구현해 줘.

에이전트 없이 터미널에서 바로 쓰는 REA 사용법도 있습니다. 압축을 푼 일렉트론 앱 폴더나 app.asar 파일이라면 npx -y rea-agents@latest analyze-javascript-application "앱 경로" --json으로 모듈 구조와 연결 관계를 뽑아 볼 수 있습니다. 윈도우에서 일렉트론 앱의 app.asar는 보통 사용자 폴더 아래 AppData\Local\Programs\앱 이름\resources 폴더에 있습니다.

REA 사용법 4단계 – 실행 파일 분석 엔진 연결(선택)

exe나 dll 같은 네이티브 실행 파일을 깊이 분석하려면 분석 엔진이 따로 있어야 합니다. 엔진마다 지원 환경이 다르니 내 운영체제에 맞는 것을 고르세요.

  • 기드라(Ghidra): 무료 분석 도구입니다. 기드라 12.1.x와 64비트 JDK 21 이상을 직접 설치해 두면 REA가 연결합니다. 리눅스·맥(x64·arm64)에서 쓸 수 있고, 윈도우는 x86·x64 실행 파일과 DLL을 읽기 전용으로만 분석하는 실험 단계입니다.
  • 하퍼(Hopper): 무료 데모가 있는 상용 프로그램으로, 맥과 리눅스에서 씁니다. 승인하면 REA 설치 과정에서 함께 설치할 수 있지만 윈도우용 설치는 지원하지 않습니다.
  • IDA: 상용 프로그램입니다. 공식 가이드상 검증된 환경은 IDA MCP를 등록한 윈도우입니다.

REA 사용법에서 놓치기 쉬운 것이 업데이트입니다. 업데이트할 때는 rea update(전역 설치한 경우) 또는 npx rea-agents@latest setup을 다시 실행합니다. 업데이트가 잦은 프로젝트라 오류가 나면 먼저 최신 버전으로 올려 보는 것이 좋습니다. 지우고 싶다면 rea uninstall로 에이전트 등록과 스킬 파일을 제거할 수 있습니다.

REA 사용법 예시 – 공식 활용 사례 4가지

REA 공식 사이트와 README에는 실제로 어떤 질문을 하고 어떤 결과를 얻는지 보여 주는 사례가 정리되어 있습니다.

1. 윈도우 계산기의 % 버튼 분석

"윈도우 계산기에서 200 + 10%는 왜 220이 될까?"라고 물으면, REA가 계산기 라이브러리에서 % 처리 코드의 명령어를 꺼내 오고 에이전트가 규칙을 설명합니다. 더하기·빼기 뒤의 %는 첫 번째 숫자의 비율(200의 10% = 20)을 뜻하고, 곱하기·나누기 뒤의 %는 현재 값을 100으로 나눈 값이라는 결론입니다.

REA 사용법 예시 – 어셈블리를 직접 읽는 대신 질문 하나로 계산기 규칙 찾기
REA 사용법 예시 – 어셈블리를 직접 읽는 대신 질문 하나로 계산기 규칙 찾기

에이전트는 찾아낸 규칙으로 % 버튼이 똑같이 동작하는 작은 계산기까지 만들어 줍니다. 공식 사이트는 이 결과를 마이크로소프트가 공개한 계산기 소스 코드와 대조해 확인했다고 밝혔습니다.

2. 크롬 공룡 게임의 속도 규칙

인터넷이 끊겼을 때 나오는 크롬 공룡 게임이 점점 빨라지는 이유를 물으면, REA가 실행 중인 게임의 스크립트에서 시작 속도 6, 가속도 0.001, 최대 속도 13이라는 설정값을 찾아냅니다. 에이전트는 이 규칙으로 속도를 조절하는 슬라이더가 달린 미니 게임을 새로 만듭니다.

REA 사용법 흐름 – REA가 코드를 읽고, 에이전트가 규칙을 재구성하고, 사용자가 결과를 확인
REA 사용법 흐름 – REA가 코드를 읽고, 에이전트가 규칙을 재구성하고, 사용자가 결과를 확인

3. 고전 게임 DX-Ball 효과음 계산 복원

고전 벽돌깨기 게임 DX-Ball 사례에서는 효과음이 왼쪽·오른쪽 어디서 들릴지 정하는 계산을 C 코드로 복원했습니다. 복원한 코드는 원본 x86 기준 3,205개 테스트를 통과했고, 컴파일한 함수 63바이트를 원본과 똑같이 재현했습니다.

4. 노션 클립보드 기능 추적

노션(Notion) 사례에서는 화면 쪽 클립보드 기능이 일렉트론의 프리로드와 IPC를 거쳐 메인 프로세스까지 어떻게 이어지는지 추적했습니다. 다만 이런 사례는 프로젝트가 직접 고른 시연이라, 모든 프로그램을 같은 수준으로 분석할 수 있다는 뜻은 아닙니다.

REA 사용법 주의 사항 – 법적·보안 체크리스트


REA 사용법만큼 중요한 것이 주의 사항입니다. REA는 강력한 만큼 잘못 쓰면 법적 문제나 보안 사고로 이어질 수 있습니다. 공식 면책 문서와 보안 문서에 적힌 내용을 중심으로 정리했습니다.

  • 허용되지 않는 용도: DRM·라이선스 체크·안티치트 우회, 게임 치트 개발, 권한 없는 시스템의 인증 우회, 독점 소프트웨어나 보호된 코드·에셋 복제는 REA 프로젝트가 지원하지 않는다고 밝힌 용도입니다.
  • 국내법 확인: 우리나라 저작권법 제101조의4는 프로그램을 정당하게 쓰는 사람이 호환에 필요한 정보를 쉽게 얻을 수 없을 때, 호환에 필요한 부분에 한해 역분석을 허용합니다. 얻은 정보를 호환 외 목적으로 쓰거나 제3자에게 넘기는 것, 원래 프로그램과 표현이 실질적으로 비슷한 프로그램을 만드는 데 쓰는 것은 금지됩니다.
  • 상용 도구 라이선스: IDA, 하퍼, JEB 같은 상용 도구는 정식으로 구해야 하며, REA는 라이선스나 키를 제공하지 않습니다.
  • 데이터 전송: 분석 자체는 내 컴퓨터에서 이뤄지지만, 결과는 AI 에이전트에 전달되어 해당 모델 제공사의 데이터 정책을 따릅니다. 회사 내부 프로그램을 분석할 때는 특히 주의해야 합니다.
  • 샌드박스 아님: 공식 보안 문서는 REA가 샌드박스가 아니라고 밝힙니다. 출처가 불분명한 프로그램은 사용자 권한 그대로 분석되므로 가상 머신 같은 분리된 환경에서 다루는 것이 안전합니다.
  • 결과 검증: 디컴파일과 AI 분석 결과는 불완전하거나 틀릴 수 있습니다. 원본 소스 코드를 그대로 되살리는 도구가 아니므로, 중요한 결론은 근거를 직접 확인해야 합니다. (AI 에이전트의 안전장치와 한계도 함께 참고하세요.)

인기가 높아지면서 이름이 비슷한 가짜 저장소도 생겼습니다. REA 공식 배포처는 깃허브 morluto/rea, 공식 사이트 rea.tools, npm 패키지 rea-agents 세 곳뿐이니 다른 곳의 다운로드 파일은 받지 마세요.

지금까지 오픈소스 AI 리버스 엔지니어링 도구 REA가 무엇인지, 분석할 수 있는 대상과 설치부터 첫 분석까지의 REA 사용법, 공식 활용 예시와 주의 사항에 대해 함께 살펴보았습니다.

REA는 전문가의 영역이던 역공학을 '질문 하나'로 바꿔 놓으면서, 오래된 프로그램 보존이나 보안 점검처럼 정당한 용도의 문턱을 크게 낮췄습니다. 반대로 소스 코드를 숨기는 것만으로는 소프트웨어를 지키기 어려워졌다는 우려도 함께 나옵니다.

REA 사용법을 처음 익힌다면 내가 가진 일렉트론 앱처럼 분석 권한이 분명한 대상부터 가볍게 시작해 보세요. 가볍고 저렴한 클로드 하이쿠 5.5나 GPT-6처럼 에이전트에 쓸 수 있는 AI 모델도 함께 살펴보세요. AI 에이전트와 코딩 AI가 궁금한 독자분께서는 아래 포스팅을 참조 부탁드립니다.

댓글 남기기