morluto/rea · 한국어 사용 가이드

Reverse Engineer Anything보이지 않는 기능을 근거와 함께 읽는다.

REA는 에이전트와 터미널에서 바이너리·앱·웹사이트·런타임 동작을 로컬에서 분석하는 하나의 MCP 서버이자 CLI입니다. 결론마다 그것을 뒷받침하는 증거와 한계를 함께 돌려줍니다.

$ npx rea-agents setup
Node 22.19+ · 24.11+ · 26+ 라이선스 MIT 지원 에이전트 21종
스크롤해서 시작
0x00

Overview

마음에 드는 기능을 보면, 바이너리 수준까지 이해한다.

소스 코드 없이 앱을 검사해 기능이 어떻게 동작하는지 설명하고, 증거를 보여 주고, 내 프로젝트용 구현까지 이어 갑니다. 사용 경로는 세 가지입니다.

A · 권장

에이전트 + MCP

Claude Code·Codex·Cursor 등에 REA MCP 서버와 워크플로 지침(skill)을 등록합니다. 자연어로 묻고, 에이전트가 REA 도구를 호출합니다.

npx rea-agents setup
B · 스크립트

터미널 CLI

MCP와 같은 워크플로·증거 계약을 씁니다. 호출마다 별도 프로세스이므로 결과를 파일로 저장해 다음 명령에 넘깁니다.

npm install --global rea-agents
C · 지침만

skill 단독 설치

조사 지침과 참고 문서만 설치합니다. MCP 등록이나 분석 엔진은 포함하지 않습니다.

npx skills add morluto/rea --skill reverse-engineer-anything
01 · 에이전트

로컬 대상에 대해 질문

“Notes 앱의 검색은 어떻게 동작하지?”처럼 대상과 궁금한 기능을 묻습니다.

02 · REA (MCP / CLI)

검사하고 추적

Hopper·Ghidra·IDA, JS 정적 분석, 브라우저 관찰 등 분석 도구로 관련 코드를 찾아 따라갑니다. 모두 로컬에서 실행됩니다.

03 · 결과 → 에이전트

코드·참조·미해결 항목

에이전트가 결과로 후속 질문을 하고, 동작을 설명하고, 구현을 작성·테스트합니다.

관찰추론미지
관찰대상에서 직접 읽은 사실과 그 출처 위치
추론관찰을 근거로 끌어낸 해석
미지아직 확인되지 않은 부분 — 결론과 분리해 남깁니다
0x10

Install & connect

계획을 먼저 보고, 승인한 것만 바꾼다.

setup은 변경할 경로와 내용을 미리 보여 주고 승인을 받은 뒤에만 파일을 씁니다. 기존 설정은 백업하고, 관련 없는 항목과 주석은 보존합니다.

  1. 에이전트 선택기존 REA 등록은 기본 선택, 새로 감지된 클라이언트는 미선택 상태로 제시됩니다.
  2. 계획 검토설정 파일 경로, skill 위치, 외부 소프트웨어·네트워크 출처가 나열됩니다.
  3. 승인거절하거나 Ctrl-C를 누르면 아무것도 바뀌지 않습니다. Hopper 설치는 별도 승인입니다.
  4. 에이전트 재시작완료 메시지에 나온 에이전트를 재시작하면 도구가 나타납니다.

setup 명령 만들기

옵션을 고르면 아래 명령이 바로 바뀝니다
실행 방식
클라이언트 · 대화형 선택
옵션
    i
    최신 릴리스로 고정하려면 npx rea-agents@latest setup. setup은 MCP 등록을 실행한 그 버전으로 고정(pin)합니다. Bun은 bunx rea-agents@latest setup.
    i
    전역 설치 없이 npm install rea-agents만 하면 현재 프로젝트의 node_modules/.bin에만 들어가 셸 PATH에서는 rea를 찾을 수 없습니다.
    0x20

    Ask your agent

    질문 하나로 조사에서 구현까지.

    setup과 재시작이 끝났다면, 대상 앱과 궁금한 기능을 바꿔 넣어 그대로 물어보면 됩니다.

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

    가이드 프롬프트 6종 MCP prompts

    REA는 MCP prompts 기능으로 엔진 중립적인 조사 워크플로를 제공합니다. 도구를 대신 실행하지는 않고, 시작점이 될 도구 이름을 제안합니다. 클라이언트가 슬래시 명령 등으로 노출하는 방식은 클라이언트마다 다릅니다.

    • investigate_feature기능을 탐색부터 관련 함수의 증거까지 추적합니다. JS/Electron 디렉터리라면 바로 analyze_javascript_application으로 안내합니다.
    • compare_application_versions배포된 두 아티팩트를 비교하고, 필요하면 정적·런타임 후속 조사를 붙입니다.
    • verify_reconstruction복원한 코드의 사양을 보존된 비교 증거에 대어 검증합니다.
    • trace_crash크래시 증상을 정적 경로와(선택적으로) 프로세스 캡처 증거에 연결합니다.
    • audit_residual_unknowns아직 풀리지 않은 미지 항목과 그 해소 근거를 감사합니다.
    • prepare_bounded_process_capture실행 전에 범위가 제한된 프로세스 관찰 실험을 설계합니다.
    0x30

    What you can analyze

    무엇을 열 수 있고, 무엇이 필요한가.

    대상별로 REA가 돌려주는 정보와 추가로 필요한 도구입니다. 정적 JavaScript·.NET 분석은 앱을 실행하지 않고 파일만 읽습니다. 런타임 캡처는 내 사용자 권한으로 대상을 실행하거나 조작합니다.

    0x40

    CLI recipes

    경로만 바꾸면 바로 실행되는 명령.

    대상 경로를 입력하면 모든 레시피가 그 경로로 다시 쓰입니다. 경로는 절대 경로를 권장합니다. 기본 출력은 TOON이고, 파일로 저장할 때는 --json을 붙입니다.

    0x50

    Native analysis providers

    네이티브 분석은 내가 가진 엔진으로.

    깊은 네이티브 분석에는 Hopper·Ghidra·IDA 중 하나가 필요합니다. 정적 JavaScript와 .NET 분석은 엔진 없이 동작합니다. 상용 도구는 각자의 라이선스를 합법적으로 갖추어야 하며, REA는 라이선스·키를 제공하지 않습니다.

    provider · hopper

    Hopper

    상용 · 무료 데모 제한 있음
    • setup이 승인 후 설치 가능 (macOS: 공식 DMG 검증 후 ~/Applications)
    • 필요할 때 REA가 직접 실행. macOS 첫 실행 시 데모/라이선스 선택 창을 먼저 처리
    • Linux는 개인 Xvfb 화면에서 데모 빌드를 헤드리스로 실행
    provider · ghidra

    Ghidra

    기존 설치 사용 · 12.1.x + JDK 21+
    • Linux·macOS x64/arm64, Windows x64는 실험적(P0)
    • setup은 Ghidra·Java를 설치하지 않음. 검증된 경로만 저장
    • 세션마다 임시 프로젝트를 읽기 전용으로 열고 닫을 때 삭제
    provider · ida

    IDA

    기존 IDA MCP 서버를 어댑트
    • 업스트림 MCP 등록 JSON을 REA_IDA_MCP_CONFIG로 지정
    • .idb/.i64가 아니라 원본 입력 바이너리를 엽니다
    • REA는 IDA를 설치·활성화하지 않음

    Ghidra 경로 지정

    export GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.1.4_PUBLIC
    export JAVA_HOME=/absolute/path/to/jdk-21  # java/javac가 PATH에 있으면 생략
    rea doctor --provider ghidra --json
    rea setup

    IDA 연결

    export REA_IDA_MCP_CONFIG=/absolute/path/to/ida-mcp.json
    export REA_ANALYSIS_PROVIDER=ida
    rea function /absolute/path/to/program main --json

    엔진 고르기

    자동 선택은 대상을 지원하는 엔진이 하나뿐일 때 그것을 씁니다. 여러 개라면 명시하세요. 우선순위는 --provider > REA_ANALYSIS_PROVIDER입니다. MCP에서는 open_binary에 provider_id를 넘깁니다.

    rea providers --json        # 사용 가능한 엔진과 지원 작업
    rea capabilities --json
    export REA_ANALYSIS_PROVIDER=hopper   # 기본 선호 엔진
    오류 상태의미와 대응
    ambiguous지원 엔진이 여럿입니다. details.candidate_ids 중 하나를 골라 --provider로 지정합니다.
    provider_unavailable선택한 엔진이 준비되지 않았습니다. rea doctor --provider ID --json으로 진단합니다.
    큰 바이너리 시작 지연REA_GHIDRA_STARTUP_TIMEOUT_MS 또는 REA_HOPPER_STARTUP_TIMEOUT_MS로 시작 기한을 늘립니다.
    0x60

    Doctor, update, uninstall

    문제가 생기면 먼저 업데이트, 그다음 범위를 좁혀 진단.

    REA는 빠르게 변하고 릴리스마다 버그 수정이 잦습니다. doctor는 완전히 읽기 전용입니다. 옵션 없이 실행하면 전체를 감사하므로, 내 작업과 무관한 엔진 때문에 healthy가 false일 수 있습니다.

    확인할 것명령
    정적 JS/Electron 분석rea analyze-javascript-application PATH --json을 바로 실행
    분석 엔진 하나rea doctor --provider ghidra --json (hopper, ida)
    에이전트 등록 하나rea doctor --client claude_code --json
    설치된 skillrea doctor --skill --json

    업데이트

    # npm/bun 전역 설치
    rea update
    # npx로 에이전트 설정을 쓰는 경우
    npx rea-agents@latest setup

    rea update는 업데이트 후 범위가 지정된 setup 명령을 출력합니다. 그것을 실행해 변경을 승인하고 에이전트를 재시작하세요. Bun 전역 업데이트는 Bun 1.2.17 이상이 필요합니다.

    제거

    rea uninstall
    rea uninstall --purge-data   # ~/.rea 캐시·상태까지

    REA가 소유한 에이전트 등록과 skill만 지웁니다. Hopper, Node.js, 증거 파일, 캡처, 다른 MCP 서버는 남습니다.

    종료 코드

    0

    작업 완료. 결과에 부분 증거·경고·미해결 질문이 있을 수 있습니다.

    1

    완료하지 못함. 구조화된 출력에 잘못된 입력·권한·취소·타임아웃 등이 표시됩니다.

    128+N

    시그널 N으로 프로세스가 종료됨.

    파이프로 jq에 넘길 때는 set -o pipefail을 켜야 REA의 실패 상태가 보존됩니다. 해결되지 않으면 REA 버전·대상 종류·재현 단계·오류 출력을 담아 이슈를 엽니다.

    0x70

    Responsible use

    내가 소유했거나 권한이 있는 소프트웨어만.

    리버스 엔지니어링은 관할 지역이나 분석 대상 소프트웨어의 라이선스에 따라 제한될 수 있습니다. 필요한 권한을 확보하고 법·계약·이용약관을 지키는 책임은 사용자에게 있습니다.

    지원하는 용도

    • 보안 연구, 악성코드·사고 분석
    • 취약점 연구와 조율된 공개
    • CTF와 교육
    • 상호운용성, 소프트웨어 보존
    • 내가 소유했거나 검사 권한이 있는 소프트웨어의 디버깅·감사

    지원하지 않는 용도

    • DRM·라이선스 검사·안티치트 등 기술적 보호 조치 우회
    • 게임 치트 개발, 온라인 서비스 변조
    • 권한 없는 시스템의 인증·봇 방지·접근 통제 우회
    • 독점 소프트웨어의 보호된 코드·자산 복제
    • AI 제공자의 정책 회피, AI 계정·API 접근 재판매·공유

    REA는 대상을 로컬에서 분석합니다. 다만 에이전트가 받은 도구 결과는 해당 모델 제공자의 데이터 정책을 따릅니다.

    복사했습니다