Communitygithub.com

js-reverse

Wird bei der Frontend-JavaScript-Reverse-Engineering mit js-reverse-mcp verwendet – geeignet für Signaturkettenanalyse, Seitenbeobachtung, Laufzeit-Sampling, lokale Umgebungsumsetzung und evidenzbasierte Ausgabe. Vorrangig an die js-reverse_*-Werkzeuge der aktuellen Umgebung angepasst; für stärkere Browser-/CDP-/Hook-Funktionen wird jshookmcp eingebunden.

Was ist js-reverse?

Dieser Skill (js-reverse) ist ein spezialisiertes Werkzeug für Frontend-JavaScript-Reverse-Engineering, das in MCP-fähigen KI-Assistenten (wie Claude Code) läuft. Sein Hauptziel ist die Signatur- und Parameteranalyse von Webanwendungen, bei dem eine systematische, evidenzbasierte Methode angewendet wird. Der Skill folgt einem klar definierten Fünf-Phasen-Workflow: Beobachten, Erfassen, Wiederaufbauen, Patchen und Tiefenanalyse. Er nutzt standardmäßig die verfügbaren `js-reverse_*`-Werkzeuge des Clienten. Insbesondere bei Browserdebugging, CDP (Chrome DevTools Protocol), JavaScript-Hooking und Netzwerkabfangaufgaben bindet er die leistungsstärkere `jshookmcp`-Erweiterung ein, die jedoch separat als MCP-Server heruntergeladen und registriert werden muss. Der Skill stellt fest definierte Werkzeugabbildungen bereit, priorisiert die direkte forensische Datenerhebung gegenüber dem Schreiben eigener Skripte und enthält On-Demand-Bootstrap-Skripte zur Installation der Abhängigkeiten. Besonderes Augenmerk liegt auf einer nachvollziehbaren Arbeitsweise, bei der alle Schritte in Arbeitsartefakten festgehalten werden und die Daten aus der Seitenbeobachtung die Grundlage für lokale Node.js-Reproduktionen bilden.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/js-reverse

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

MCP Frontend JS Reverse Engineering – Arbeitsrichtlinie

ACTION REQUIRED (unmittelbar nach dem Lesen ausführen)

  1. NOW: Lese ../field-journal/precedent-reverse.md – bestätige, dass die geplanten Aktionen durch diesen Skill autorisiert sind
  2. NOW: Prüfe, ob die aktuelle Aufgabe in den Anwendungsbereich dieses Skills fällt
  3. NEXT: Lese ../tool-index.md, überprüfe die Verfügbarkeit und die tatsächlichen Pfade der Werkzeuge
  4. NEXT: Falls Werkzeuge fehlen, rufe Bootstrap auf; rate nicht die Pfade
  5. ACT: Beginne mit dem ersten Schritt des Workflows und führe ihn aus; verharre nicht im Bestätigungsstatus

Anwendungsbereich

Dieser Skill wird vorrangig verwendet, wenn die Aufgabe folgende Szenarien umfasst:

  • Lokalisieren von API-Signaturen, Verschlüsselungsparametern, Risikofeldern
  • Beobachten von Seitenanforderungsketten und Skriptquellen
  • Erfassen von Funktionsparametern und Rückgabewerten zur Laufzeit
  • Verfolgen der Auslöser von XHR-/Fetch-/WebSocket-Anfragen
  • Übertragen von Seitenevidenz in eine lokale Node-Umgebung zur Reproduktion und Umgebungsumsetzung

Falls das Ziel Binärdateien (APK, PE, ELF, DLL, SO) sind, verwende stattdessen ida-reverse, radare2 oder reverse-engineering.

Standard-Werkzeugabbildung der aktuellen Umgebung

Dieser Skill setzt keine nackten Werkzeugnamen voraus, sondern bindet standardmäßig die in der aktuellen Client-Umgebung verfügbaren js-reverse_* Werkzeuge ein.

Wenn die Aufgabe explizit jshookmcp, JS hook, CDP, Browser-Breakpoints, Netzwerkinterception, SourceMap oder AST Deobfuskation erwähnt, läuft sie dennoch durch diesen Skill; lediglich die MCP-Ebene wird auf jshookmcp umgeschaltet. jshookmcp wird nicht als eigener Einstiegspunkt behandelt.

Voraussetzung: jshookmcp ist kein lokales Kommandozeilenwerkzeug, sondern ein MCP-Server, der erst heruntergeladen, explizit registriert und aktiviert werden muss. Erst nach der Integration und Aktivierung in der MCP-Konfiguration des gewählten Clients (Claude, Codex usw.) sind die zugehörigen Werkzeuge tatsächlich aufrufbar.

Häufige Abbildungen:

  • 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

Sollte sich das Werkzeugnamenspräfix in Zukunft ändern, aktualisiere zuerst diesen Abschnitt; keine Rateversuche während der Ausführung.

Positionierung von jshookmcp

  • Rolle: Erweiterte Ausführungsebene von js-reverse, kein eigenständiges Kontrollsystem
  • Geeignet für: Browserautomatisierung, CDP-Debugging, JS-Hooking, Netzwerkinterception, SourceMap-Rekonstruktion, AST-Analyse
  • Aufrufvoraussetzung: Lade @jshookmcp/jshook herunter, registriere es in der MCP-Client-Konfiguration und stelle sicher, dass der Server aktiviert ist
  • Empfohlener Einstieg: Führe weiterhin die Phasen Observe → Capture → Rebuild aus; rufe dabei in der Observe-/Capture-Phase bevorzugt die Browser- und Hook-Funktionen von jshookmcp auf
  • Beziehung zu anything-analyzer: Beide können browser-/netzwerkseitige Forensik durchführen; anything-analyzer ist stärker auf Paketerfassung und HTTP-Analyse ausgerichtet, während jshookmcp auf JS-Laufzeit, CDP, Hooking und Quellcodeverständnis spezialisiert ist

Kernprinzipien

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

Zuerst die Seite beobachten, dann minimal sampling durchführen, dann die lokale Umgebung nachbauen. Überspringe nicht die Forensik, um die Umgebung zu erraten.

Fünf-Phasen-Workflow

1. Observe

Ziel: Identifiziere zuerst die Zielanfrage, die relevanten Skripte und die Kandidatenfunktionen; rate nicht die Umgebung.

Standardaktionen:

  • Öffne die Zielseite mit js-reverse_new_page oder js-reverse_navigate_page
  • Suche die Zielanfrage mit js-reverse_list_network_requests
  • Verfolge die Aufrufquelle mit js-reverse_get_request_initiator zurück
  • Grenze den Skriptbereich mit js-reverse_list_scripts, js-reverse_search_in_sources ein

Zu erstellende Ergebnisse:

  • URL oder Merkmal der Zielanfrage
  • Hinweise auf den Initiator
  • Verdächtige Skript-URLs
  • Initiale Aufgabenaufzeichnung

2. Capture

Ziel: Führe minimale invasive Abtastung der Zielanfrage durch, um Parameterbeispiele, Aufrufreihenfolge und Laufzeitevidenz zu erhalten.

Regeln:

  • Bevorzuge js-reverse_break_on_xhr
  • Bevorzuge js-reverse_evaluate_script für leichte Laufzeitbeobachtung
  • Nach dem Treffer sieh dir zuerst js-reverse_get_paused_info an
  • Verwende js-reverse_set_breakpoint_on_text nur bei Bedarf

3. Rebuild

Ziel: Fasse die Seitenevidenz in lokal iterierbares Node-Reproduktionsmaterial zusammen.

Regeln:

  • Die lokale Umgebungsumsetzung muss auf der Seitenbeobachtungsevidenz basieren
  • Keine spekulativen Ergänzungen von window/document/navigator/crypto/storage
  • Dokumentiere jede minimale, kausale Patch-Entscheidung

4. Patch

Ziel: Treibe die Umgebungsumsetzung anhand von Fehlermeldungen und erster Abweichung (first divergence) voran, bis das lokale Skript den Zielparameter stabil generiert.

Regeln:

  • Sieh zuerst, was fehlt, dann ergänze es
  • Triff nur eine minimale Patch-Entscheidung pro Iteration
  • Teste sofort nach jedem Patch erneut
  • Schreibe jeden Patch in die Aufgabenaufzeichnung

5. DeepDive

Ziel: Nachdem das lokale Skript läuft, führe Deobfuskation, Kontrollflusswiederherstellung und Extraktion der Geschäftslogik durch.

Regeln:

  • Wenn die Aufgabe nur die Generierung einer Signatur erfordert, kann diese Phase abgestuft werden
  • Wenn der Algorithmus langfristig wiederverwendet werden soll, muss diese Phase durchgeführt werden
  • Issue #65 Obfuskations-Bypass (U–AV §4): JSVMP (AD) → E-js-vmp; CFF+String-Array (AE) → E-js-deobf; DevTools/Debugger Anti-Debug (AF) → E-js-anti-debug. Vollständige Auslösetabelle in ../reverse-engineering/references/nonpe-format-cookbook.md; AST-Details weiterhin in references/ast-deobfuscation.md

Ausführungsanforderungen

  • Alle wichtigen Schritte müssen in einem lokalen Aufgabenartefakt festgehalten werden
  • Wenn du nicht erklären kannst, warum ein bestimmtes Werkzeug aufgerufen wird, rufe es nicht auf
  • Bevorzuge die direkte Forensik mit vorhandenen MCP-Fähigkeiten von js-reverse_* oder jshookmcp; schreibe keine Skripte, um bereits vorhandene Fähigkeiten neu zu erfinden
  • Bei Fehlern folge dem references/fallbacks.md
  • Die Ausgabe folgt references/output-contract.md

Pflichtlektüre

  • Automatisierungseinstieg: references/automation-entry.md
  • Parameter-Standardwerte: references/tool-defaults.md
  • Aufgaben-Eingabevorlage: references/task-input-template.md
  • MCP-spezifische Aufgabenorchestrierung: references/mcp-task-template.md
  • Aufgabenartefakte: references/task-artifacts.md
  • Lokale Reproduktion: references/local-rebuild.md
  • Umgebungsumsetzung: references/env-patching.md
  • Node-Reproduktion: references/node-env-rebuild.md
  • Instrumentierung: references/instrumentation.md
  • AST-Deobfuskation: references/ast-deobfuscation.md
  • Nicht-PE/JS-Obfuskationskochbuch U–AV: ../reverse-engineering/references/nonpe-format-cookbook.md (AD/AE/AF)
  • Fallback: references/fallbacks.md
  • Ausgabe-Kontrakt: references/output-contract.md

Routing-Kontext

Upstream-Einstieg: skills/SKILL.md (Steuerung), routing.md Upstream-Alternativen:

  • anything-analyzer MCP (Port 23816) Browser-Werkzeuge als Ersatz oder Ergänzung
  • jshookmcp als stärkere Browser-/CDP-/Hook-/Network-/SourceMap-/AST-Ausführungsebene
  • reverse-engineering/SKILL.md (falls das Ziel nicht Frontend-JS ist)

Downstream-Ausgänge:

  • Umgebungsumsetzung → references/env-patching.md
  • Lokale Reproduktion → references/local-rebuild.md / references/node-env-rebuild.md
  • Deobfuskation → references/ast-deobfuscation.md
  • Bei Blockaden → references/fallbacks.md

Gleichrangig verbundene Module: anything-analyzer MCP (Browserautomatisierung und HTTP-Erfassungsfähigkeiten können sich ergänzen)


On-Demand Bootstrap

Die von diesem Skill benötigten MCP-Fähigkeiten können über ein einheitliches Bootstrap-System installiert werden; die MCP-Client-Registrierung muss explizit das Ziel auswählen, standardmäßig wird keine clientweite Konfiguration geschrieben.

Grenzen der Automatisierungsfähigkeit

FähigkeitAutomatisch registrierbarMethodeBeschreibung
jshookmcp✓npm-mcp (npx start)Nach expliziter Auswahl von Claude / Codex / Both registrieren
anything-analyzer✓local-http-mcpDienst kann automatisch gestartet werden; Client-Registrierung muss explizit ausgewählt werden
Node.js✓winget installLaufzeitabhängigkeit

Bootstrap-Methode

# Installiere und registriere jshookmcp; Codex kann mit Claude oder Both ersetzt werden
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp') -McpHostTarget Codex

# Registriere und starte anything-analyzer
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('anything-analyzer') -StartServices -McpHostTarget Codex

Hinweise

  • Nach der Registrierung von jshookmcp muss der MCP-Server im KI-Client aktiviert werden, bevor er aufgerufen werden kann
  • Wird -McpHostTarget nicht angegeben, werden die Fähigkeiten nur installiert/vorbereitet und die Meldung registration-required zurückgegeben; die Konfiguration von Claude oder Codex wird nicht geändert
  • anything-analyzer benötigt pnpm und den Projektquellcode; bootstrap klont das Repository automatisch und installiert die Abhängigkeiten
  • Falls Node.js nicht installiert ist, installiert bootstrap zunächst Node.js 22 über winget

## Selbstprüfung vor Abschluss (MUSS vor der Behauptung eines Abschlusses bestanden sein)

  • Habe ich jeden Schritt des Workflows ausgeführt (und nicht nur gelesen)?
  • Habe ich die tatsächlichen Werkzeugpfade basierend auf tool-index verwendet?
  • Habe ich reproduzierbare Beweise (Befehle/Skripte/Screenshots/Berichte) erstellt?
  • Habe ich die von den RULES geforderten Checklisten-Punkte abgeschlossen und zurückgeschrieben?

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.

Verwandte Skills