Communitygithub.com

js-reverse

js-reverse-mcp를 사용한 프론트엔드 JavaScript 리버스 엔지니어링을 위한 스킬입니다. 서명 체인 추적, 페이지 관찰 증거 수집, 런타임 샘플링, 로컬 환경 재현 및 증거 출력에 적합합니다. 현재 환경의 js-reverse_* 도구를 우선 사용하며, 더 강력한 브라우저/CDP/Hook 기능이 필요하면 jshookmcp와 연동합니다.

js-reverse란 무엇인가요?

이 스킬은 MCP(Modular Command Platform) 환경에서 프론트엔드 JavaScript 리버스 엔지니어링을 수행하기 위한 포괄적인 워크플로우를 정의합니다. 주로 웹 페이지의 API 요청 서명, 암호화 파라미터, 리스크 관리 필드를 추적하고 분석하는 데 사용됩니다. 핵심은 'Observe-first'(먼저 관찰) 원칙으로, 브라우저 페이지를 열어 네트워크 요청과 스크립트 출처를 확인하고, 그 다음 최소한의 개입으로 런타임 샘플링을 수행하며, 마지막으로 로컬 Node.js 환경에서 수집된 증거를 기반으로 환경을 재현하고 파라미터를 복제합니다. 이 스킬은 Claude, Codex, Cursor 등 MCP를 지원하는 모든 AI 클라이언트에서 사용할 수 있으며, js-reverse_* 도구 세트와 필요에 따라 jshookmcp(고급 브라우저 자동화, CDP 디버깅, JS Hook 및 네트워크 인터셉션)와 연동됩니다. 워크플로우는 Observe(관찰), Capture(캡처), Rebuild(재구축), Patch(패치), DeepDive(심층 분석)의 5단계로 구성되며, 각 단계에서 증거 기반 결정과 최소 침습적 접근을 강조합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/js-reverse

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

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

문서

MCP 프론트엔드 JS 리버스 엔지니어링 작업 규범

ACTION REQUIRED (읽은 후 즉시 실행)

  1. NOW: ../field-journal/precedent-reverse.md 읽기 — 본 스킬의 작업이 승인된 정규 작업인지 확인
  2. NOW: 현재 작업이 본 스킬의 적용 범위에 해당하는지 확인
  3. NEXT: ../tool-index.md 읽기, 도구 가용성 및 실제 경로 확인
  4. NEXT: 도구가 없으면 bootstrap 호출, 경로를 추측하지 않음
  5. ACT: "워크플로우" 첫 단계로 진입하여 실행, 확인 상태에서 멈추지 않음

적용 범위

다음 시나리오에 해당하는 작업은 본 스킬을 우선 사용합니다:

  • 인터페이스 서명, 암호화 파라미터, 리스크 관리 필드 식별
  • 페이지 요청 체인 및 스크립트 출처 관찰
  • 런타임에서 함수 입력값과 반환값 캡처
  • 특정 XHR/Fetch/WebSocket 트리거 지점 추적
  • 페이지 증거를 Node로 가져와 로컬 재현 및 환경 보완

대상이 바이너리, APK, PE, ELF, DLL, SO인 경우 ida-reverse, radare2 또는 reverse-engineering을 대신 사용하십시오.

현재 환경 기본 도구 매핑

본 스킬은 기본 도구 이름이 존재한다고 가정하지 않고, 현재 클라이언트 환경에서 사용 가능한 js-reverse_* 도구에 자동으로 바인딩됩니다.

현재 작업에 jshookmcp, JS hook, CDP, 브라우저 중단점, 네트워크 인터셉션, SourceMap 또는 AST 난독화 해제가 명시적으로 언급된 경우에도 본 스킬을 따릅니다. 단, 기본 MCP 면을 jshookmcp로 전환할 뿐, 이를 새로운 전체 진입점으로 취급하지 않습니다.

전제 조건: jshookmcp는 로컬에서 바로 실행할 수 있는 명령이 아니라, 먼저 다운로드하고 명시적으로 등록하고 활성화해야 하는 MCP 서버입니다. 선택한 클라이언트(Claude, Codex 등)의 MCP 설정에 연결하고 활성화한 후에야 관련 도구를 실제로 호출할 수 있습니다.

일반 매핑:

  • list_scripts -> js-reverse_list_scripts
  • get_script_source -> js-reverse_get_script_source
  • search_in_sources -> js-reverse_search_in_sources
  • break_on_xhr -> js-reverse_break_on_xhr
  • evaluate_script -> js-reverse_evaluate_script
  • get_paused_info -> js-reverse_get_paused_info
  • set_breakpoint_on_text -> js-reverse_set_breakpoint_on_text
  • list_network_requests -> js-reverse_list_network_requests
  • get_request_initiator -> js-reverse_get_request_initiator
  • get_websocket_messages -> js-reverse_get_websocket_messages
  • take_screenshot -> js-reverse_take_screenshot
  • new_page -> js-reverse_new_page
  • navigate_page -> js-reverse_navigate_page
  • select_page -> js-reverse_select_page
  • select_frame -> js-reverse_select_frame
  • pause/resume -> js-reverse_pause_or_resume

향후 도구 이름 접두사가 변경되면 이 섹션을 먼저 업데이트하고, 실행 중에 임시로 추측하지 마십시오.

jshookmcp의 위치

  • 역할: js-reverse의 향상된 실행면, 독립적인 전체 제어가 아님
  • 적합: 브라우저 자동화, CDP 디버깅, JS Hook, 네트워크 인터셉션, SourceMap 재구성, AST 보조 이해
  • 호출 전제: 먼저 @jshookmcp/jshook를 다운로드하여 MCP 클라이언트 설정에 등록한 후, 해당 서버가 활성화되었는지 확인
  • 권장 진입점: 여전히 Observe → Capture → Rebuild 순서를 따르되, Observe/Capture 단계에서 jshookmcp의 브라우저와 Hook 기능을 우선 호출
  • anything-analyzer와의 관계: 둘 다 브라우저/네트워크 측 증거 수집 가능; anything-analyzer는 패킷 캡처 및 HTTP 분석에 더 치우치고, jshookmcp는 JS 런타임, CDP, Hook 및 소스 코드 이해에 더 치중

핵심 원칙

  • Observe-first
  • Hook-preferred
  • Breakpoint-last
  • Rebuild-oriented
  • Evidence-first

먼저 페이지를 관찰하고, 최소한의 샘플링을 수행한 후, 로컬 환경을 재구축하십시오. 증거를 건너뛰고 환경을 추측하지 마십시오.

5단계 워크플로우

1. Observe

목표: 대상 요청, 관련 스크립트, 후보 함수를 먼저 확인하고 환경을 추측하지 않음.

기본 동작:

  • js-reverse_new_page 또는 js-reverse_navigate_page로 대상 페이지 열기
  • js-reverse_list_network_requests로 대상 요청 찾기
  • js-reverse_get_request_initiator로 호출 출처 역추적
  • js-reverse_list_scripts, js-reverse_search_in_sources로 스크립트 범위 좁히기

필수 산출물:

  • 대상 요청 URL 또는 특징
  • initiator 단서
  • 의심스러운 스크립트 URL
  • 초기 작업 기록

2. Capture

목표: 대상 요청에 대해 최소 침습적 샘플링을 수행하여 파라미터 예제, 호출 순서, 런타임 증거 확보.

규칙:

  • js-reverse_break_on_xhr 우선
  • js-reverse_evaluate_script로 가벼운 런타임 관찰 우선
  • 적중 후 먼저 js-reverse_get_paused_info 확인
  • 필요 시에만 js-reverse_set_breakpoint_on_text 사용

3. Rebuild

목표: 페이지 증거를 정리하여 로컬에서 반복 가능한 Node 재현 자료로 만듦.

규칙:

  • 로컬 환경 보완은 페이지 관찰 증거에 기반해야 함
  • window/document/navigator/crypto/storage를 공상으로 보완하는 것은 허용되지 않음
  • 매번 하나의 최소 인과 패치 결정만 기록

4. Patch

목표: 오류와 첫 번째 divergence를 기반으로 환경 보완을 진행하여 로컬 스크립트가 안정적으로 대상 파라미터를 출력할 때까지 진행.

규칙:

  • 무엇이 부족한지 먼저 확인하고 그다음 보완
  • 한 번에 하나의 최소 패치 결정만 수행
  • 각 패치 후 즉시 재테스트
  • 각 패치를 작업 기록에 작성

5. DeepDive

목표: 로컬 실행 성공 후, 난독화 해제, 제어 흐름 복원, 비즈니스 로직 추출 수행.

규칙:

  • 현재 작업이 단순히 서명 출력만 필요하면 이 단계를 생략 가능
  • 알고리즘 체인을 장기간 재사용해야 하면 이 단계는 필수
  • Issue #65 난독화 우회 (U–AV §4): JSVMP (AD) → E-js-vmp; CFF+문자열 배열 (AE) → E-js-deobf; DevTools/debugger 안티디버깅 (AF) → E-js-anti-debug. 전체 트리거 테이블은 ../reverse-engineering/references/nonpe-format-cookbook.md 참조; AST 세부 사항은 여전히 references/ast-deobfuscation.md 사용

실행 요구사항

  • 모든 중요 단계는 로컬 task artifact에 기록해야 함
  • 도구 호출 이유를 설명할 수 없으면 호출하지 마십시오
  • js-reverse_* 또는 jshookmcp의 기성 MCP 기능을 우선 사용하여 직접 증거를 수집하고, 스크립트를 먼저 작성하여 기능을 재발명하지 마십시오
  • 실패 시 references/fallbacks.md에 따라 복구
  • 출력은 references/output-contract.md 준수

필독 참조

  • 자동화 진입점: references/automation-entry.md
  • 파라미터 기본값: references/tool-defaults.md
  • 작업 입력 템플릿: references/task-input-template.md
  • MCP 전용 작업 오케스트레이션: references/mcp-task-template.md
  • 작업 산출물: references/task-artifacts.md
  • 로컬 재현: references/local-rebuild.md
  • 환경 보완: references/env-patching.md
  • Node 재현: references/node-env-rebuild.md
  • 계측: references/instrumentation.md
  • AST 난독화 해제: references/ast-deobfuscation.md
  • 비 PE/JS 난독화 레시피 U–AV: ../reverse-engineering/references/nonpe-format-cookbook.md (AD/AE/AF)
  • 복구: references/fallbacks.md
  • 출력 계약: references/output-contract.md

라우팅 컨텍스트

상위 진입점: skills/SKILL.md (총괄), routing.md 상위 대안:

  • anything-analyzer MCP (포트 23816)의 브라우저 도구를 대안 또는 보충으로 사용 가능
  • jshookmcp를 더 강력한 브라우저/CDP/Hook/Network/SourceMap/AST 실행면으로 사용 가능
  • reverse-engineering/SKILL.md (대상이 프론트엔드 JS가 아닌 경우)

하위 출력:

  • 환경 보완 필요 → references/env-patching.md
  • 로컬 재현 필요 → references/local-rebuild.md / references/node-env-rebuild.md
  • 난독화 해제 필요 → references/ast-deobfuscation.md
  • 진행 불가 시 복구 → references/fallbacks.md

동급 관련 모듈: anything-analyzer MCP (브라우저 자동화 및 HTTP 캡처 기능이 상호 보완 가능)


온디맨드 부트스트랩 (On-Demand Bootstrap)

본 스킬이 의존하는 MCP 기능은 통합 부트스트랩 시스템을 통해 설치할 수 있습니다. MCP 클라이언트 등록은 명시적으로 대상을 선택해야 하며, 기본적으로 어떤 클라이언트 전역 설정도 작성하지 않습니다.

자동화 기능 경계

기능자동 등록 가능방식설명
jshookmcp✓npm-mcp (npx 실행)Claude / Codex / Both 명시적 선택 후 등록
anything-analyzer✓local-http-mcp서비스 자동 시작 가능; 클라이언트 등록은 명시적 선택 필요
Node.js✓winget 설치런타임 종속성

부트스트랩 방식

# jshookmcp 설치 및 등록; Codex를 Claude 또는 Both로 변경 가능
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp') -McpHostTarget Codex

# anything-analyzer 등록 및 시작
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('anything-analyzer') -StartServices -McpHostTarget Codex

주의사항

  • jshookmcp 등록 후에도 AI 클라이언트에서 해당 MCP 서버를 활성화해야 호출 가능
  • -McpHostTarget을 전달하지 않으면 도구를 설치/준비하고 registration-required 상태를 반환하며 Claude 또는 Codex 설정을 수정하지 않음
  • anything-analyzer는 pnpm과 프로젝트 소스 코드가 필요하며, bootstrap이 자동으로 clone하고 의존성을 설치함
  • Node.js가 설치되지 않은 경우 bootstrap이 먼저 winget을 통해 Node.js 22를 설치함

## 작업 완료 자가 점검 (완료를 주장하기 전에 MUST 통과)

  • 나는 워크플로우의 각 단계를 실행했는가 (단순히 읽기만 한 것이 아니라)?
  • 나는 tool-index를 기반으로 실제 도구 경로를 사용했는가?
  • 나는 재현 가능한 증거(명령어/스크립트/스크린샷/보고서)를 생산했는가?
  • 나는 RULES가 요구하는 Checklist 항목을 완료하고 다시 작성했는가?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

관련 스킬