REA로 하는 첫 분석
시작하기 전에
에이전트에 REA가 설정되어 있어야 하고(설치 가이드 참고), 검사해도 되는 대상이 있어야 합니다. 본인 앱, 오픈소스 프로젝트, CTF 바이너리, 학습용으로 만든 연습 대상 같은 것들입니다. 아래 명령어는 REA 프로젝트가 공개한 README, CLI 가이드, 에이전트 프롬프트를 따릅니다. 바뀐 부분이 있으면 원문을 확인하세요.
JavaScript·Electron 앱부터 시작하기
JavaScript 정적 분석에는 네이티브 분석 엔진이 필요 없어서, 첫 결과를 얻는 가장 빠른 길입니다. 압축을 푼 앱 디렉터리나 ASAR 파일을 지정하세요.
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
결과에는 모듈, import, Electron 경계와 각각의 근거가 담깁니다. 경로는 절대 경로로 쓰세요. Windows에서는 "D:/apps/example" 같은 형태입니다. 정적 분석은 앱을 실행하지 않고 파일만 읽습니다.
에이전트에게 묻기
에이전트 안에서 대상, 기능, 받고 싶은 결과를 설명하세요. README의 예시는 다음과 같습니다.
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
에이전트는 MCP로 REA를 호출해 관련 코드를 추적하고, 근거가 담긴 결과를 받습니다. 첫 질문은 좁게 잡는 편이 좋습니다. 기능 하나, 대상 하나, 그리고 근거를 요청하세요. 에이전트에게 관찰한 것, 추론한 것, 아직 모르는 것을 구분해 달라고 하세요.
안내형 조사
REA는 MCP 프롬프트로 조사 워크플로 여섯 가지도 제공합니다. MCP 프롬프트를 보여 주는 클라이언트에서는 이름으로 나타납니다.
| 프롬프트 | 용도 |
|---|---|
investigate_feature | 기능을 찾아 관련 함수까지 추적 |
compare_application_versions | 배포된 두 빌드를 비교 |
verify_reconstruction | 재구성 결과를 보관된 근거와 대조 |
trace_crash | 크래시 증상을 코드 경로와 연결 |
audit_residual_unknowns | 아직 모르는 부분을 점검 |
prepare_bounded_process_capture | 무엇이든 실행하기 전에 통제된 런타임 실험을 계획 |
네이티브 바이너리
네이티브 분석에는 Hopper, Ghidra 또는 IDA를 씁니다. 엔진이 준비됐는지 확인하고, REA가 인식하는 프로바이더를 나열한 뒤, 대상을 지원하는 프로바이더가 여럿이면 하나를 고르세요.
rea doctor --provider ghidra --json
rea providers --json
rea analyze /absolute/path/to/program --provider hopper
rea doctor는 설정을 읽기만 하고 아무것도 바꾸지 않습니다. REA_ANALYSIS_PROVIDER로 기본 프로바이더를 정해 둘 수도 있습니다. 네이티브 분석 결과에는 의사 코드, 어셈블리, 문자열, 심볼, 호출과 참조가 담깁니다.
리뷰어처럼 결과 읽기
프로젝트의 면책 조항은 분명합니다. 디컴파일, 재구성, AI 보조 분석은 불완전하거나 틀릴 수 있습니다. 결론을 믿기 전에 그 근거를 확인하세요. 분석 보고서나 소스 코드 같은 출력물이 원래 프로그램에 대한 권리를 주지는 않는다는 점도 기억하세요. 런타임 워크플로는 사용자 권한으로 대상을 실행하거나 상호작용하므로, 신뢰할 수 없는 대상은 알맞은 환경에서 다루세요. 안전하고 합법적인 사용을 참고하세요.
발견한 것 공유하기
REA로 흥미로운 일을 했나요? 원본 출처 링크와 함께 이 디렉터리에 사례를 제출하세요. REA 프로젝트도 이슈로 사례를 받고 있습니다.