MCP Frontend JS Reverse Engineering – Arbeitsrichtlinie
ACTION REQUIRED (unmittelbar nach dem Lesen ausführen)
NOW: Lese../field-journal/precedent-reverse.md– bestätige, dass die geplanten Aktionen durch diesen Skill autorisiert sindNOW: Prüfe, ob die aktuelle Aufgabe in den Anwendungsbereich dieses Skills fälltNEXT: Lese../tool-index.md, überprüfe die Verfügbarkeit und die tatsächlichen Pfade der WerkzeugeNEXT: Falls Werkzeuge fehlen, rufe Bootstrap auf; rate nicht die PfadeACT: 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_scriptsget_script_source→js-reverse_get_script_sourcesearch_in_sources→js-reverse_search_in_sourcesbreak_on_xhr→js-reverse_break_on_xhrevaluate_script→js-reverse_evaluate_scriptget_paused_info→js-reverse_get_paused_infoset_breakpoint_on_text→js-reverse_set_breakpoint_on_textlist_network_requests→js-reverse_list_network_requestsget_request_initiator→js-reverse_get_request_initiatorget_websocket_messages→js-reverse_get_websocket_messagestake_screenshot→js-reverse_take_screenshotnew_page→js-reverse_new_pagenavigate_page→js-reverse_navigate_pageselect_page→js-reverse_select_pageselect_frame→js-reverse_select_framepause/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/jshookherunter, registriere es in der MCP-Client-Konfiguration und stelle sicher, dass der Server aktiviert ist - Empfohlener Einstieg: Führe weiterhin die Phasen
Observe → Capture → Rebuildaus; 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-firstHook-preferredBreakpoint-lastRebuild-orientedEvidence-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_pageoderjs-reverse_navigate_page - Suche die Zielanfrage mit
js-reverse_list_network_requests - Verfolge die Aufrufquelle mit
js-reverse_get_request_initiatorzurück - Grenze den Skriptbereich mit
js-reverse_list_scripts,js-reverse_search_in_sourcesein
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_scriptfür leichte Laufzeitbeobachtung - Nach dem Treffer sieh dir zuerst
js-reverse_get_paused_infoan - Verwende
js-reverse_set_breakpoint_on_textnur 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 inreferences/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ähigkeit | Automatisch registrierbar | Methode | Beschreibung |
|---|---|---|---|
| jshookmcp | ✓ | npm-mcp (npx start) | Nach expliziter Auswahl von Claude / Codex / Both registrieren |
| anything-analyzer | ✓ | local-http-mcp | Dienst kann automatisch gestartet werden; Client-Registrierung muss explizit ausgewählt werden |
| Node.js | ✓ | winget install | Laufzeitabhä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
jshookmcpmuss der MCP-Server im KI-Client aktiviert werden, bevor er aufgerufen werden kann - Wird
-McpHostTargetnicht angegeben, werden die Fähigkeiten nur installiert/vorbereitet und die Meldungregistration-requiredzurückgegeben; die Konfiguration von Claude oder Codex wird nicht geändert anything-analyzerbenö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-indexverwendet? - Habe ich reproduzierbare Beweise (Befehle/Skripte/Screenshots/Berichte) erstellt?
- Habe ich die von den RULES geforderten Checklisten-Punkte abgeschlossen und zurückgeschrieben?