Community연구 & 데이터 분석github.com

pierandrearizzo01/Claude

REA(Reverse Engineering Agent)를 사용하여 네이티브, 관리형, Electron/JavaScript, 패키지, 펌웨어, 브라우저 대상에 대한 역공학을 수행합니다. 출하된 아티팩트나 요청된 런타임 증거를 활용하여 기능을 설명하고, 버전을 비교하며, 코드를 디컴파일하거나 재구성을 안내합니다. 일반 소스 저장소 아키텍처 분석의 경우 REA를 건너뜁니다.

Claude란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor, Codex 등)가 출하된 바이너리, 패키지, 디컴파일 또는 수동 애플리케이션 런타임 증거에 의존하는 클레임을 조사할 때 REA(Reverse Engineering Agent)를 활용하는 방법을 정의합니다. Node.js, npm 및 선택적 분석 엔진(Hopper, Ghidra 등)이 포함된 REA MCP 서버 설치 및 등록을 안내하는 것이 아니라 사용자가 직접 설정해야 합니다. 이 스킬은 JavaScript/Electron ASAR, Android APK, .NET 관리형 어셈블리, 펌웨어 이미지, 패킷 캡처, 브라우저 대상 등 다양한 대상을 분석하기 위한 특정 도구 라우팅(예: open_binary, analyze_javascript_application, inspect_android_package)을 제공합니다. 또한 문제 진단(String 진단 명령 사용), 설정 복구(드라이 런 계획 후 승인), 오래된 등록 처리, 엔진별 전제 조건 및 CLI 폴백(예: npx -y [email protected] analyze-javascript-application)을 설명합니다. 핵심 원칙은 증거 기반 분석을 수행할 때 기존 설정을 변경하지 않거나 불필요하게 진단 명령을 반복하지 않는 것입니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓Gemini CLI✓OpenCode✓Windsurf
npx skills add https://github.com/pierandrearizzo01/Claude/tree/HEAD/.claude/skills/reverse-engineer-anything

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

REA

REA는 주장이 출하된 바이너리나 패키지, 디컴파일, 수동 애플리케이션 런타임 증거, 또는 사용 가능한 소스로 확립되지 않은 동작과의 비교에 의존할 때 사용합니다. 완전한 소스 저장소에 대한 일반 분석은 일반 저장소 도구를 사용하고 REA 준비 또는 제공자 명령을 실행하지 마십시오.

필요한 경우에만 연결

이 스킬을 설치하면 지침이 제공될 뿐, REA MCP 서버를 등록하거나, 분석 엔진을 설치하거나, 이미 실행 중인 에이전트에 도구를 추가하지는 않습니다.

REA 도구를 사용할 수 있고 해당 등록이 오래된 것으로 알려지지 않은 경우 대상으로 직접 진행합니다. 모든 조사 전에 진단 또는 설정을 실행하지 마십시오. 연결된 서버의 실제 도구 목록과 입력 스키마를 사용하십시오. 저장소 메인에서 설치된 스킬은 이전 npm 릴리스에는 없는 기능을 설명할 수 있습니다. 해당 서버가 보존된 참조를 광고하지 않는 경우 완전한 인라인 증거를 유지하십시오.

도구가 없거나, 클라이언트에 의해 호출이 차단되거나, 필수 제공자를 사용할 수 없는 경우 연결 및 복구를 읽으십시오. 관찰된 차단기를 진단하고, 지원되는 유용한 작업을 계속 진행하며, 수리 후 원래 작업을 재개하십시오. 클라이언트 승인, 셸 PATH, 등록 및 엔진 가용성은 각기 다른 해결 방법이 있습니다. 모든 항목에 대해 설정을 반복하지 마십시오.

  1. REA 또는 클라이언트 구성을 변경하지 않고 진단합니다. npx는 패키지를 다운로드하고 npm의 캐시에 쓸 수 있습니다. Codex의 경우 npx -y [email protected] doctor --client codex --json을 실행합니다. 현재 지원되는 클라이언트로 대체하십시오: claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, devin, opencode, antigravity, copilot_cli, commandcode, vscode, grok_build, omp, 또는 grok_bot. grok_bot은 로컬 파일 등록이 없습니다. doctor는 Grok Bot 채팅 단계를 보고하며, 설정은 mcp.json을 작성하지 않습니다. 클라이언트를 알 수 없는 경우 doctor --json을 사용하고 설정 범위를 선택하기 전에 등록 결과를 검사하십시오.
  2. 원인을 구분합니다. 누락, 잘못됨 또는 오래된 등록은 범위가 지정된 구성 수리가 필요합니다. 활성 세션에 도구가 없는 정렬된 등록은 다시 시작/재연결이 필요합니다. doctor는 현재 에이전트가 연결되었음을 증명할 수 없습니다. 누락된 제공자는 해당 제공자가 필요한 작업에만 영향을 미칩니다. 정적 JavaScript 검사는 Hopper나 Ghidra가 필요 없으며, Android 검사는 별도의 JADX/Java 전제 조건이 필요합니다.
  3. 구성 수리의 경우 읽기 전용 계획을 준비합니다: npx -y [email protected] setup --client codex --dry-run --json. 현재 클라이언트의 ID를 사용하고, 정확한 제안된 경로, 백업 및 변경 사항을 표시한 후 설정이 구성을 작성하거나 Hopper를 설치하기 전에 승인을 받으십시오. 설정은 일반적으로 일치하는 번들 스킬도 설치합니다. 검토된 계획에 해당 교체를 포함하십시오. 승인 후 npx -y [email protected] setup --client codex --yes로 동일한 범위를 적용합니다. 해당 별도 설치가 필요하고 명시적으로 승인된 경우에만 --install-hopper를 추가하십시오.
  4. 영향을 받는 에이전트를 다시 시작/재연결합니다. REA 도구가 실제로 세션에 나타나는지 확인한 후 원래 조사를 재개하십시오. 계속 없으면 설정을 반복하지 말고 클라이언트의 MCP 실행 오류를 검사하십시오.

REA 설정은 Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk 또는 Unblob를 설치하거나 업그레이드하지 않습니다. 기존 전제 조건을 사용하고, MCP 등록을 수리하기 위해 관련 없는 소프트웨어를 설치하지 마십시오. 지원되지 않는 클라이언트의 경우 버전이 고정된 rea-agents 패키지로 수동 stdio 등록을 사용하거나 CLI를 통해 계속 진행하십시오.

운영자가 제공한 JavaScript 트리 또는 ASAR에 대한 구체적인 CLI 폴백은 다음과 같습니다:

npx -y [email protected] analyze-javascript-application /absolute/path/to/app --json

MCP 등록이나 네이티브 엔진이 필요하지 않습니다. 반환된 증거, 그래프, 제한 사항 및 알 수 없는 사항을 MCP 결과와 동일한 주의로 읽으십시오. CLI는 증거 레코드를 직접 반환합니다. 이 폴백은 MCP가 구성되었음을 확립하지 않습니다. 네이티브 CLI 작업에는 여전히 선택한 엔진이 필요합니다. 기존 rea CLI를 선호하십시오. 설치되지 않았고 REA 패키지 획득이 승인된 범위 내에 있는 경우 npx -y [email protected]을 대신 사용하십시오. 구성 수리는 읽기 전용 설정 계획으로 시작됩니다. 승인된 변경 사항을 적용하기 전에 경로, 백업 및 스킬 교체를 표시하십시오. 기존 승인 및 대상 실행 경계를 유지하십시오. REA 설정은 Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk 또는 Unblob를 포함한 관련 없는 소프트웨어를 설치하거나 업그레이드하지 않습니다.

먼저 대상을 라우팅

사용자가 제공한 대상에서 첫 번째 도구를 선택하십시오. 활성 대상 네이티브 또는 아카이브 워크플로의 경우 open_binary를 사용하십시오. 대상이 없는 도구는 자체 명시적 경로 또는 엔드포인트를 가지며 필요하지 않습니다.

  • ASAR 또는 추출된 JavaScript/Electron 트리: analyze_javascript_application.

  • 아카이브/패키지 멤버 인벤토리(ZIP/APK/IPA/MSIX/AppX 또는 DMG): 제공된 로컬 경로로 open_binary를 사용하고, 해당 그래프와 결과가 질문에 답하는 데 도움이 될 때 inspect_artifact를 사용하십시오.

  • Android APK 코드, 클래스, 메서드 또는 들어오는 참조: inspect_android_package를 사용한 다음, 광고될 때 집중 Android 도구를 사용하십시오. 아카이브 멤버 인벤토리는 여전히 위의 아카이브 경로를 사용합니다.

  • 관리형 PE/CLI 어셈블리: inspect_managed_artifact.

  • 펌웨어 이미지: 광고될 때 inspect_firmware_regions를 사용하십시오. 추출이 요청된 경우 extract_firmware를 사용하고, 호출자가 선택한 새로운 절대 출력 디렉토리를 사용하십시오. 이러한 도구는 Linux에서 호출자가 제공한 Binwalk/Unblob를 사용합니다. 펌웨어 가이드를 참조하십시오.

  • .NET NativeAOT PE/ELF: 네이티브 Ghidra 분석. 네이티브 코드는 유사 코드를 생성할 수 있습니다. 선택적 메타데이터 복구 및 지원되는 호스트/레이아웃 경계에 대한 내용은 references/native-and-artifacts.md의 NativeAOT 워크플로를 참조하십시오.

  • 이미 열려 있는 사용자 소유 브라우저 페이지: list_browser_targets.

  • 에이전트가 수행해야 하는 브라우저 작업(클릭, 입력, 탐색): 선언된 작업으로 capture_browser_scenario를 사용하십시오. 연결/실행 및 집중 후속 브라우저 도구에 대한 내용은 런타임 관찰을 참조하십시오.

  • Fiddler Everywhere 트래픽 또는 네이티브 .saz 캡처: Fiddler 워크플로를 읽으십시오. inspect_web_network_capture 및 format: "saz"로 저장된 SAZ를 검사하고, 라이브 트래픽을 위해 Everywhere의 별도 MCP 서버에 연결하십시오.

  • 보존된 HAR/SAZ/네이티브 mitmproxy/aioquic qlog 캡처: inspect_web_network_capture를 사용하십시오. 유용할 때 원래 레코드 서수를 선택하고, 기록된 URL을 가져오거나 라이브 귀속을 주장하지 않고 생산자 필드 및 바이트/번호 사이드카를 검사하십시오. 정확한 업스트림 프로필 및 자격 증명 제외 사항은 기록 캡처를 참조하십시오. Qlog 지원은 aioquic 1.5.0 JSON 0.3부터 시작됩니다. 스트림 범위 및 엔드포인트 손실 선언은 본문을 복구하지 않거나 네트워크 손실을 확립하지 않습니다. 세부 요약, 종류 qlog 추적/스트림 페이지를 선호하고, 기여/범위 페이지에 대해 하나의 추적, 스트림 ID 및 방향을 선택하십시오. 사실은 선택 전의 모든 기록된 이벤트 범위를 유지합니다. 다른 qlog 레이아웃 및 PCAP 상관 관계는 지원되지 않습니다.

  • 사용자 소유의 이미 열려 있는 Electron 런타임: list_electron_targets. electron-main Inspector 시도 전에 inspect_electron_fuses로 패키지된 퓨즈를 확인하십시오. 비활성화된 EnableNodeCliInspectArguments는 앱이 --inspect를 무시함을 의미합니다.

  • 패킷 필드 검색: inspect_packet_fields는 inspect_packet_capture의 필드를 선택하기 전에 설치된 프로토콜 및 필드 이름/유형을 검색합니다. 관련 레코드를 쿼리/페이지하고, 등록은 관찰된 트래픽을 확립하지 않습니다.

  • 기록된 패킷 캡처: 선택된 TShark 필드, 디스플레이 필터 및 디코드-애스 규칙으로 inspect_packet_capture를 사용하십시오. Linux, util-linux prlimit 및 REA_TSHARK_COMMAND가 필요합니다. 캡처 가이드를 참조하십시오. 패킷 제한은 필터링 전에 입력 패킷을 계산합니다. 출력은 기본적으로 50개의 일치하는 프레임입니다. 이후 페이지에는 match_offset / match_limit를 사용하거나, 완전한 일치 출력을 위해 명시적 null 제한을 사용하십시오. 페이지 전체에서 소스 다이제스트를 유지하십시오. 이것은 라이브 캡처를 수행하지 않습니다. 주소/DNS/SNI/프로토콜 요약의 경우 MCP 세부 요약과 함께 inspect_pcap_capture를 사용한 다음, 보존된 종류 pcap 페이지를 사용하십시오. Wireshark 4.x tshark 및 capinfos, Linux prlimit 또는 Windows Job Objects가 필요합니다. 패킷 요약을 참조하십시오. 주소 페이지의 경우 정확한 DNS 질문을 선택하십시오. 페이지 소진은 네트워크 완전성을 증명하지 않습니다. 이것은 기록을 읽으며 트래픽을 획득하지 않습니다.

  • 디코더 검색: inspect_signal_decoders는 설치된 디코더 ID 또는 선택된 디코더 도움말(채널 및 옵션 포함)을 검색합니다. 설정을 선택하기 전에 관련 세부 정보를 쿼리 및 페이지하고, 이것은 하드웨어를 스캔하지 않습니다.

  • 기록된 논리/신호 추적: 명시적 디코더, 채널 및 프로토콜 설정으로 decode_signal_recording을 사용하십시오. Linux, util-linux prlimit을 사용하여 REA_SIGROK_COMMAND를 통해 sigrok-cli 0.7.2를 제공하십시오. 레코딩 가이드를 참조하십시오. 출력은 기본적으로 50개의 리터럴 라인입니다. 주석 클래스를 선택하고 line_offset / line_limit로 페이지를 지정하거나, 나머지 모든 출력에 대해 명시적 null을 사용하십시오. 창 수는 디스플레이 라인이며, 주석이나 샘플이 아닙니다. 페이지 전체에서 소스 다이제스트를 유지하십시오. 이것은 기존 파일을 읽으며 하드웨어 신호를 획득하지 않습니다.

  • 명시적 로컬 WebAssembly 아티팩트: inspect_wasm_artifact를 사용하십시오. REA_WABT_BIN_DIRECTORY를 통해 WABT 1.0.42를 제공하고, 정확한 바이트/도구 ID 및 디코딩된 WAT를 유지하십시오. JavaScript 글루 및 후보 경로를 명시적으로 선택하고 URL/경로 모호성을 유지하십시오. 암시적 가져오기 또는 대상 실행 없음; WAT는 원래 소스가 아닙니다. WASM 가이드를 참조하십시오.

  • 명시적 로컬 EVM 바이트코드 캐리어: 호출자가 선택한 raw 또는 hex 인코딩으로 inspect_evm_interface를 사용하십시오. 캐리어/디코딩된 다이제스트를 유지하고 선택자, 인수 문자열 및 변경 가능성을 추론된 후보로 처리하십시오. 이것은 체인 조회 또는 대상 실행을 수행하지 않습니다. 16진수 또는 중복 stdout 없이 완전한 추론된 인터페이스를 위해 지원을 검색하고 detail: "summary"를 선택하십시오. 완전한 증거는 원래 ID로 유지됩니다. 정확한 함수 또는 bytecode_hex/stdout/stderr 페이지에 대해 반환된 parent_evidence_id를 사용하십시오. 후보 범위는 인터페이스 완전성을 확립하지 않습니다. EVM 바이트코드 가이드를 참조하십시오.

  • 포함된 Go 컴파일러, 모듈 또는 빌드 설정 메타데이터: 명시적 로컬 파일로 inspect_go_binary를 사용하십시오. 이 내장 대상 없는 검사는 Go 설치 또는 디스어셈블러가 필요하지 않습니다. 원시 모듈 바이트 및 소스 범위를 유지하십시오. 누락된 메타데이터는 바이너리가 Go가 아님을 증명하지 않으며, 구문 분석되지 않은 텍스트 레코드는 명시적으로 유지됩니다. Go 바이너리 가이드를 참조하십시오.

  • 포함된 cargo-auditable Rust 종속성 메타데이터: 명시적 로컬 ELF, PE 또는 씬 Mach-O 파일로 inspect_rust_binary를 사용하십시오. 이 내장 대상 없는 검사는 Rust 설치 또는 디스어셈블러가 필요하지 않습니다. 패키지 순서, 종속성 인덱스 및 섹션 파일 범위를 유지하십시오. .dep-v0 섹션이 없으면 null 메타데이터이며, 바이너리에 종속성이 없음을 증명하지 않습니다. rustc 커밋 해시는 읽기 전용 /rustc/<40-hex>/ 경로에서 추론된 것입니다. Rust 바이너리 가이드를 참조하십시오.

  • 명시적 로컬 SQLite 데이터베이스 스냅샷: inspect_sqlite_database를 사용하십시오. Node.js 24.x >= 24.15 또는 26+가 네이티브 SQLite 제한을 제공하여 검사하십시오. 먼저 스키마를 읽거나(기본적으로 컴팩트 인벤토리), 행이 필요할 때 정확한 일반 테이블과 columns를 선택하십시오. 기본값은 선택된 테이블 스키마 및 20개 행입니다. 완전한 저장된 스키마를 위해 schema_scope: "database"를 요청하십시오. 데이터베이스 및 기존 형제 WAL ID를 모두 유지하고, 행 샘플은 잘림을 보고하고 순서가 지정되지 않습니다. 라이브 데이터베이스/WAL 쌍이 원자적으로 복사되었다고 가정하지 않고 정적 스냅샷을 사용하십시오. SQLite 가이드를 참조하십시오.

  • 오프라인 레이아웃, 심볼, 재배치 또는 정적 완화 증거를 위한 명시적 Linux ELF 파일: inspect_binary_layout를 사용하십시오. 이 대상 없는 작업은 디스어셈블러 데이터베이스를 열지 않고 호출자가 제공한 pwntools를 사용합니다. 원시 위치 및 추론/범위 제한을 유지하십시오. 오프라인 바이너리 가이드를 참조하십시오.

  • 제공된 Linux x86-64 ELF 코어: inspect_recorded_crash를 사용하십시오. 라이브 대상을 열지 않고 모든 기록된 스레드, 원시 노트 및 소스 바인딩 레지스터를 읽으십시오. 이전 PID는 라이브 프로세스를 선택하지 않습니다. 코어 전용 매핑 후보가 도움이 될 때만 include_debugger_context를 요청하십시오. 기록된 크래시 가이드를 참조하십시오.

  • PE 리소스 유형/이름/언어 트리 및 정적 아이콘 그룹 참조: 명시적 경로로 inspect_pe_resources를 사용하십시오. 이 이식 가능한 작업은 활성 대상이나 엔진이 필요하지 않습니다. 불투명 페이로드는 파일 범위 및 SHA-256을 유지합니다.

  • 네이티브 실행 파일, 라이브러리 또는 분석 데이터베이스: open_binary를 사용한 다음, 직접 집중 분석 도구를 사용하십시오. 선택한 제공자의 메타데이터 또는 인벤토리 컨텍스트가 유용하고 사용 가능할 때 binary_overview를 호출하십시오.

기존 IDA MCP 구성의 경우 원래 입력 바이너리와 provider_id: "ida"로 open_binary를 사용하십시오. .idb 또는 .i64 데이터베이스를 전달하지 마십시오. 레거시 연결 프로필은 SHA-256으로 이미 열린 GUI 입력을 바인딩하고 데이터베이스를 열린 상태로 둡니다. 최신 헤드리스...

관련 스킬