상세 컨텐츠

본문 제목

코딩 에이전트에 디컴파일러를 붙이는 REA | npx 한 줄 설치 전에 확인할 것과 쓰면 안 되는 경우 (2026년 10월 기준)

서버·개발/코드 노트

by 사이 (SAI) 2026. 10. 15. 12:09

본문

728x90
반응형

코딩 에이전트에게 앱 바이너리 하나를 던지고 "이게 어떻게 동작하는지 알려 줘"라고 시켜 본 적이 있다면 결과가 어땠는지 짐작이 갑니다. 에이전트는 문자열을 몇 줄 뽑아 보다가 도구가 없어 멈추고, 결국 사람이 디컴파일러를 열게 됩니다. 이 틈을 메우려는 오픈소스가 REA(Reverse Engineer Anything)입니다.

REA는 GitHub의 morluto/rea에 올라온 MIT 라이선스 프로젝트로, 바이너리·자바스크립트·Electron 앱·.NET·웹사이트를 살펴보는 도구를 MCP 서버로 묶어 Claude Code, Codex, Cursor 같은 에이전트에서 바로 부르게 합니다. 설치 명령은 npx rea-agents setup 한 줄이지만, 이 한 줄이 내 에이전트 설정 파일을 고친다는 점은 알고 시작해야 합니다. 아래에서 설치 순서, 필요한 것, 점검·제거 방법, 그리고 쓰면 안 되는 경우를 차례로 정리합니다.

REA는 리버스엔지니어링 도구를 MCP 서버로 묶어 코딩 에이전트가 부르게 하는 MIT 오픈소스다. 설치는 npx rea-agents setup, 필요한 Node.js는 22.x는 22.19 이상, 24.x는 24.11 이상, 또는 26 이상이다. 분석은 내 컴퓨터에서 돌지만 도구 결과는 에이전트가 받고, 그 모델 제공사의 데이터 정책도 따로 있다. 프로젝트는 DRM 우회, 게임 치트, 권한 없는 시스템 접근에 쓰는 것을 돕지 않는다고 밝혔다.

1. REA는 에이전트와 분석 도구 사이에서 무슨 일을 하나

밤 책상 위 열린 노트북 옆에 놋쇠 자물쇠가 달린 종이 꼬리표 허가받은 것만과 돋보기가 놓인 장면

README는 REA를 "바이너리, 애플리케이션, 런타임 동작을 아우르는 리버스엔지니어링용 MCP 하나"라고 소개합니다. 에이전트가 MCP로 REA를 부르면 REA가 대상을 살펴보고, 찾은 내용을 증거와 한계와 함께 돌려줍니다. 에이전트는 그 결과로 추가 질문을 하거나 동작을 설명하거나 구현을 써서 시험합니다.

REA가 코딩 에이전트와 분석 도구 사이에서 하는 일을 네 단계로 정리한 도식

제 판단으로는 REA는 새로운 분석 엔진이 아니라 에이전트와 기존 분석 도구를 잇는 중간 층에 가깝습니다. 네이티브 분석은 Hopper, Ghidra, IDA 중 하나를 쓰고, 자바스크립트와 .NET은 별도 엔진 없이 파일을 정적으로 읽습니다. 에이전트가 도구를 못 써서 멈추던 자리에 도구 목록을 쥐여 주는 셈입니다.
프로젝트 기록도 확인해 두면 좋은 점이 있습니다. 저장소는 4월 14일에 만들어졌고, npm 레지스트리의 최신판 6.5.0은 10월 14일에 올라왔습니다. README에는 스타 20만 개 돌파 감사 문구가 붙어 있지만, 인기와 안전은 별개이니 아래 설치 전 확인 항목을 먼저 읽어 보세요.

핵심 로컬 분석이라는 말의 범위. README는 REA가 대상을 내 컴퓨터에서 분석한다고 밝혔지만, 에이전트가 도구 결과를 받아 가고 그 에이전트의 모델 제공사에는 별도의 데이터 정책이 있다고 적었습니다. 민감한 바이너리라면 어느 에이전트에 연결할지부터 정하세요.

2. 설치: npx 한 줄이 실제로 바꾸는 것

설치 명령은 README 맨 위에 있습니다. Node.js와 npm이 깔린 터미널에서 아래 한 줄을 실행하면, 연결할 에이전트를 고르고, 바뀔 내용을 확인하고, 승인하는 순서로 진행됩니다. 설치가 끝나면 에이전트를 재시작해야 REA 도구가 붙습니다.

GitHub README의 Set up your agent 부분: npx rea-agents setup 명령과 에이전트를 고르고 변경을 검토해 승인한 뒤 재시작하라는 안내, 지원 에이전트 목록
출처: GitHub morluto/rea README 갈무리

설치 명령 (README의 공식 명령)

npx rea-agents setup

setup은 선택한 에이전트에 REA의 MCP 서버를 등록하고, 거기에 맞는 작업 지침(skill)을 함께 설치합니다. 기존 설정은 백업을 만들고, 관련 없는 항목은 그대로 보존한다고 설치 문서가 설명합니다. 지원 에이전트는 Claude Code, Codex, Cursor, Gemini CLI, Grok Build 등이고, 문서가 정리한 클라이언트 목록은 더 깁니다.

바뀌는 내용이 궁금하다면 적용 전에 계획만 볼 수 있습니다. 저는 실제 설정 파일을 건드리지 않도록 임시 홈 폴더에서 --dry-run으로 돌려 봤습니다. 아래 움직이는 화면이 그 출력의 일부입니다.

맥 터미널에서 npx rea-agents setup --client claude_code --dry-run을 실행하면 status가 planned로 나오고 Claude Code 설정 파일 등록과 skill 설치 두 계획이 보이며 appliedActions가 비어 있는 실제 출력 일부
실제 실행 출력의 일부(격리한 임시 홈 폴더에서 --dry-run, 경로는 ~로 줄이고 긴 줄은 …로 생략, 프롬프트 모양은 재구성)

핵심은 세 줄입니다. status: planned는 계획만 세웠다는 뜻이고, plannedActions에는 Claude Code 설정 파일(~/.claude.json)에 REA 등록을 추가하는 일과 개인 skill 폴더에 skill을 설치하는 일이 들어 있었습니다. 등록 명령은 npx -y rea-agents@6.5.0 mcp로 버전이 고정되어 있었고, appliedActions는 비어 있었습니다.

적용 전에 계획만 보기 (설치 문서의 옵션)

npx rea-agents setup --client claude_code --dry-run

주의 Claude Code에서는 기본 등록 범위가 사용자 전체입니다. 설치 문서는 이렇게 등록하면 Claude Code가 여는 모든 프로젝트에서 REA 도구를 부를 수 있다고 설명하고, 한 프로젝트에서만 쓰려면 프로젝트 범위로 등록하는 방법을 따로 안내합니다. 어느 쪽이 맞는지 정한 뒤 승인하세요.

이름이 비슷한 가짜를 조심하라는 안내도 README 맨 위에 있습니다. 받는 곳은 morluto/rea, rea.tools, npm의 rea-agents 세 곳이고, 비슷한 저장소 이름이나 복사한 README만으로는 공식이라고 볼 수 없다고 적혀 있습니다. 에이전트의 설정 파일을 고치는 도구라서 출처 확인은 설치 전에 가장 먼저 할 일입니다.
Node.js 버전도 확인하세요. 문서가 지원하는 범위는 22.x는 22.19 이상, 24.x는 24.11 이상, 그리고 26 이상이고, Node 23과 25는 지원하지 않는다고 밝혔습니다. REA는 Node나 npm을 대신 올려 주지 않습니다.

3. 무엇을 분석할 수 있고, 무엇이 더 필요한가

README의 분석 대상 표는 길지만, 처음 쓰는 사람이 알아야 할 것은 "대상마다 추가로 필요한 도구가 다르다"는 점입니다.

분석 대상별로 더 필요한 것: 네이티브 바이너리는 Hopper·Ghidra·IDA 중 하나, 자바스크립트와 Electron은 Node와 npm, .NET은 추가 도구 없음, APK는 JADX와 JDK, 웹사이트는 크롬 계열 브라우저
분석 대상 REA가 돌려주는 것 (README 기준) 더 필요한 것
네이티브 바이너리 의사 코드, 어셈블리, 문자열, 심볼, 호출·참조 Hopper, Ghidra, IDA 중 하나
자바스크립트·Electron 모듈, import, 소스맵, 라우트, IPC Node.js와 npm (Linux는 procps 호환 ps)
.NET 어셈블리 메타데이터, CIL 명령, 네이티브 의존성 없음(정적 분석)
안드로이드 APK 매니페스트, 클래스, 디컴파일된 메서드 헤드리스 JADX와 전체 JDK
웹사이트 페이지 구조, 스크립트, 네트워크 관찰 크롬 계열 브라우저

이 밖에도 SQLite, WASM, Flutter 앱, 펌웨어, 저장된 네트워크 캡처 같은 대상이 표에 있고, 각각 요구 사항이 다릅니다. 처음에는 가장 단순한 자바스크립트·Electron 정적 분석부터 시작하는 편이 막힐 일이 적습니다. 추가 엔진이 필요 없기 때문입니다.

핵심 상용 도구는 직접 구해야 합니다. Hopper는 setup이 승인을 받은 뒤 설치해 줄 수 있고, 무료 데모에는 제작사가 정한 한도가 있으며 유료 라이선스는 선택입니다. IDA Pro와 JEB는 직접 적법하게 구해야 하고, REA는 라이선스나 키를 제공하지 않는다고 문서가 밝혔습니다. 데모와 평가판도 제작사의 이용 조건을 따릅니다. Ghidra와 IDA는 이미 깔린 것을 씁니다.

정적 분석과 런타임 관찰은 위험이 다릅니다. README는 자바스크립트와 .NET의 정적 검사가 파일을 읽을 뿐 앱을 실행하지 않는다고 설명하고, 런타임 캡처는 선택한 대상을 내 사용자 권한으로 실행하거나 조작한다고 적었습니다. 출처를 모르는 프로그램이라면 격리된 환경에서 다루세요.

4. 쓰는 법: 에이전트에게 시키기, 터미널에서 쓰기

설치와 재시작이 끝나면 에이전트에게 평소처럼 말로 시키면 됩니다. 분석 권한이 분명한 대상으로 시작하세요. 아래는 제가 만든 예시 문장입니다.

에이전트에게 시키는 문장 예시 (제가 만든 예시)

내가 만든 ./MyApp 폴더의 Electron 앱에서 설정이 저장되는 흐름을 분석해 줘.
근거가 되는 모듈과 파일 위치를 같이 보여 주고, 확실하지 않은 부분은 따로 표시해 줘.

같은 기능을 터미널에서도 쓸 수 있습니다. README는 압축을 푼 자바스크립트·Electron 앱 폴더나 ASAR를 분석하는 명령을 이렇게 안내합니다. 결과에는 모듈, import, Electron 경계와 그 근거가 들어 있다고 합니다.

터미널 분석 (README의 예시)

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

자주 쓸 계획이라면 명령을 전역으로 설치해 rea로 부를 수 있습니다. 네이티브 분석은 먼저 어느 분석 엔진을 쓸지(provider) 정해야 하고, 이 부분은 CLI 문서에 따로 정리되어 있습니다.

전역 설치 (README의 명령)

npm install --global rea-agents
rea --help

핵심 결과를 그대로 믿지 마세요. 프로젝트의 DISCLAIMER는 디컴파일, 재구성, AI 보조 분석 결과가 불완전하거나 틀릴 수 있다고 밝히고, 중요한 결론은 근거를 확인한 뒤 쓰라고 안내합니다. 에이전트가 만든 구현도 원본과 같은지 직접 시험해야 합니다.

5. 점검과 제거: doctor, update, uninstall

REA는 빠르게 바뀌고 릴리스마다 버그 수정이 들어간다고 README가 적었습니다. 문제가 생기면 먼저 업데이트하고, 그다음 점검하세요. 아래 움직이는 화면은 설치부터 제거까지의 명령 순서를 공식 문서의 명령으로 이어 붙인 것입니다.

맥 터미널에서 npm install --global rea-agents, rea setup, rea doctor --json, rea update, rea uninstall 명령을 차례로 보여 주는 재구성 화면
재구성한 예시 화면(명령은 REA 공식 문서의 명령, 출력은 생략)
하고 싶은 일 명령 알아 둘 점 (설치 문서 기준)
상태 점검 rea doctor --json 읽기 전용이라 아무것도 고치지 않는다
업데이트 rea update npm·Bun 전역 설치본만 갱신한다. npx로 쓰면 npx rea-agents@latest setup으로 등록을 새로 고친다
제거 rea uninstall REA가 만든 에이전트 등록과 skill 파일만 지운다. --purge-data를 붙이면 ~/.rea의 캐시와 상태도 지운다

제거해도 Hopper, Node.js, 분석 증거 파일, 캡처, 관련 없는 skill과 다른 MCP 서버는 그대로 남는다고 문서가 설명합니다. 설정 파일이 깨져 있거나 안전하지 않은 경로에 있으면 아무것도 지우지 않고 멈춥니다. 한 프로젝트에만 등록한 Claude Code의 로컬 등록은 doctor와 uninstall이 읽지 않으니 claude mcp remove --scope local rea로 따로 지워야 합니다.

다른 에이전트 도구도 같은 방식으로 권한과 범위를 살펴보고 싶다면 클로드 코드 처음 설치와 코덱스 클라우드 설정에서 환경과 비밀값을 다루는 방법을, AI에게 중고거래 답장을 맡기기 전에에서 에이전트에게 권한을 줄 때의 체크 항목을 볼 수 있습니다.

6. 설치 전 체크리스트와 쓰면 안 되는 경우

설치 전에 확인할 다섯 가지: 공식 출처, 바뀌는 파일 목록, 등록 범위, 에이전트 재시작, 상용 도구 라이선스

위 내용을 다섯 가지로 줄이면 이렇습니다. 하나라도 불분명하면 설치 전에 멈추는 편이 안전합니다.
다음은 쓰는 사람의 책임이 따르는 영역입니다. 프로젝트의 DISCLAIMER는 REA가 합법적인 분석을 위한 것이며, 아래 용도는 지원하지도 돕지도 않는다고 밝혔습니다.

REA DISCLAIMER 문서의 Responsible use 부분: 합법적 분석의 범위와 DRM·라이선스 확인·치트 방지 우회, 게임 치트, 권한 없는 접근, 독점 소프트웨어 복제 등 지원하지 않는 용도
출처: GitHub morluto/rea DISCLAIMER.md 갈무리
REA 프로젝트가 돕지 않겠다고 밝힌 일: 보호 장치 우회, 게임 치트와 온라인 서비스 변조, 권한 없는 시스템 접근, 독점 소프트웨어 복제, 그리고 허용 범위로 적힌 일

주의 리버스엔지니어링은 관할 지역과 대상 소프트웨어의 라이선스에 따라 제한될 수 있다고 DISCLAIMER가 밝혔습니다. 파일이 공개되어 있거나 내 컴퓨터에 있다는 사실만으로 모든 작업이 허락되는 것은 아닙니다. 분석 대상에 대한 권한과 범위는 쓰는 사람이 확인해야 하고, 에이전트에게 시킨 명령과 스크립트에 대한 책임도 사용자에게 있다고 문서가 적었습니다.

Q. REA는 무료인가요?

REA 자체는 MIT 라이선스 오픈소스입니다. 다만 네이티브 분석에 쓰는 Hopper는 무료 데모(제작사 한도 적용)와 선택 가능한 유료 라이선스가 있고, IDA Pro와 JEB는 직접 적법하게 구해야 합니다. 연결하는 에이전트와 모델의 요금은 쓰는 서비스의 정책을 따릅니다.

Q. 내 파일이 어딘가로 업로드되나요?

README는 REA가 대상을 로컬에서 분석한다고 밝혔습니다. 다만 에이전트가 도구 결과를 받고, 그 에이전트의 모델 제공사에는 별도의 데이터 정책이 있다고 적었습니다. 민감한 대상이라면 어느 에이전트에 연결할지부터 정하세요.

Q. Node.js는 어떤 버전이 필요한가요?

22.x는 22.19 이상, 24.x는 24.11 이상, 26 이상입니다. Node 23과 25, 프리릴리스는 지원하지 않는다고 문서가 밝혔습니다.

Q. 설치하면 내 에이전트 설정이 망가지나요?

setup은 바꿀 파일 경로와 변경 내용을 보여 주고 승인을 받으며, 기존 설정은 백업하고 관련 없는 항목은 보존한다고 문서가 설명합니다. 먼저 --dry-run으로 계획만 보고, 중요한 설정은 따로 복사해 두는 편이 안전합니다.

Q. REA의 정확도는 얼마나 되나요?

README와 설치 문서에는 REA 자체의 정확도 수치가 없습니다. 대신 결과에 증거와 한계가 함께 붙고, DISCLAIMER가 분석 결과가 틀릴 수 있다고 밝히므로 중요한 결론은 근거를 직접 확인해야 합니다.

Q. 회사 앱을 분석해도 되나요?

분석 권한이 있어야 합니다. DISCLAIMER는 내가 소유했거나 분석 권한이 있는 소프트웨어, 보안 연구, CTF, 상호 운용 같은 용도를 허용 범위로 적었고, 보호 장치 우회나 독점 소프트웨어 복제는 돕지 않는다고 밝혔습니다. 회사 앱이라면 사내 정책과 계약부터 확인하세요.

3줄 핵심 요약

  1. REA는 리버스엔지니어링 도구를 MCP 서버로 묶어 코딩 에이전트가 부르게 하는 MIT 오픈소스이며, 설치는 npx rea-agents setup 한 줄이다.
  2. setup은 에이전트 설정 파일을 고치므로 공식 출처(morluto/rea, rea.tools, npm rea-agents)인지, 등록 범위가 맞는지 --dry-run으로 계획을 먼저 읽고 승인하자. Node.js는 22.x는 22.19 이상, 24.x는 24.11 이상, 또는 26 이상이어야 한다.
  3. 분석은 로컬에서 돌지만 도구 결과는 에이전트가 받고 모델 제공사의 데이터 정책도 확인해야 하며, 분석 결과는 틀릴 수 있다. DRM 우회·치트·권한 없는 접근에는 쓰지 말고 점검은 doctor, 제거는 uninstall로 한다.

마치며

도구가 좋아졌다고 분석 실력이 저절로 좋아지지는 않습니다. 그래도 에이전트가 도구를 못 써서 손으로 하던 일이 지시 한 번으로 시작된다는 점은 달라졌습니다. 그 편리함의 대가가 내 설정 파일 수정이라는 점만 알고 시작하면 됩니다.
오늘 할 일은 하나입니다. 실제 계정을 건드리지 않는 임시 폴더에서 setup --dry-run을 한 번 돌려 어떤 파일이 바뀌는지 읽어 보세요. 계획이 마음에 들면 그때 승인하고 내가 만든 앱 하나로 시작하면 됩니다.

NEXT READ

이어서 읽어 볼 글

01  클로드 코드 처음 설치, 맥·윈도우 명령 한 줄 · 에이전트 설치가 막힐 때 볼 세 곳

02  코덱스 클라우드 처음 설정 · 환경 만들기 6단계와 비밀값

03  AI에게 중고거래 답장을 맡기기 전에 · 에이전트에게 권한을 줄 때 지킬 체크리스트

#REA,#리버스엔지니어링,#MCP서버,#코딩에이전트,#ClaudeCode,#Ghidra,#오픈소스,#바이너리분석,#개발도구,#코드노트

728x90
반응형

관련글 더보기

댓글 영역