Communitygithub.com

DQmyth/js-reverse-ops

Produktionstaugliche JavaScript-Reverse-Engineering-Fähigkeit: evidenzgesteuerte Arbeitsabläufe, wortgetreue Sandbox-Harnesse, 19 praxiserprobte Playbooks, 136 Skripte, öffentliche Benchmarks.

Was ist js-reverse-ops?

Diese KI-Fähigkeit bietet einen strukturierten, wiederholbaren Arbeitsablauf für das Reverse-Engineering von JavaScript in Produktionsqualität. Sie ist für Entwickler und Sicherheitsforscher konzipiert, die mit stark obfuskierten oder browserabhängigen Js-Code arbeiten, z.B. zur Signaturwiederherstellung, Laufzeitverfolgung oder Umgebungsrekonstruktion. Die Fähigkeit folgt einem strengen, evidenzbasierten Ansatz: Statt Ad-hoc-Debugging werden Arbeitsabläufe in klar getrennte Phasen (Lokalisierung, Laufzeit, Wiederherstellung, Wiedergabe) unterteilt, die durch vordefinierte Skripte und 19 spezialisierte Playbooks unterstützt werden. Sie enthält außerdem umfassende Referenzmaterialien zur Vermeidung häufiger Sandbox-Fehler, zur Fehldiagnose und zum Toolchain-Bootstrap. Die Fähigkeit unterstützt die Integration mit Browser MCP und anderen Tools und legt großen Wert auf reproduzierbare Ergebnisse, Artefaktverwaltung und Sicherheit vor der Veröffentlichung. Sie ist dafür ausgelegt, als öffentliches Paket geteilt zu werden, wobei private Fallbibliotheken, Anmeldedaten und kundenspezifische Daten strikt getrennt bleiben.

Funktioniert mit~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add DQmyth/js-reverse-ops

In Ihrer bevorzugten KI fragen

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

Dokumentation

JS Reverse Ops

Nutzen Sie diese Fähigkeit als strukturierten Reverse-Engineering-Arbeitsablauf, nicht als Ad-hoc-Debugging-Sitzung.

Starten Sie hier

  1. NOW: Klassifizieren Sie die Anfrage (Signaturwiederherstellung, Offline-Entschleierung, Laufzeitverfolgung, Umgebungsneubau, ...) und laden Sie nur die referenzierten Dateien für diesen Aufgabentyp.
  2. NOW: Wenn die Arbeit das lokale Ausführen von Browser-JS beinhaltet, lesen Sie zuerst references/env-rebuild-recipes.md – 10 Rezeptkarten (nativ maskierte Klassen, Class-Tag-Sonden, No-Host-Builtins, echte Timer, Inline-Proxy, Kalibrierungsorakel), die die teuersten Sandbox-Fehler verhindern.
  3. NOW: Wenn Abhängigkeiten oder Tooling unklar sind, folgen Sie references/toolchain-bootstrap.md, bevor Sie Sonden schreiben.
  4. NEXT: Wenn ein neu erstellter Ablauf „fast funktioniert“ (gültiges erstes Token, spätere Fehler, 200-aber-falsche-Antworten, unerklärliche Schlüsselabweichung), stoppen Sie die Sondierung und lesen Sie references/misdiagnosis-patterns.md.
  5. ACT: Betreten Sie die passende Stufe des Kernarbeitsablaufs und führen Sie sie aus – halten Sie nicht bei der Bestätigung an.

Umfang

Diese öffentliche Version enthält:

  • Stufenbasierte Weiterleitung für Lokalisierung, Laufzeit, Wiederherstellung und Wiedergabe
  • Wiederverwendbare Skripte für Extraktion, Normalisierung von Laufzeitaufzeichnungen, Erstellung von Wiedergabegerüsten und Artefaktgenerierung
  • Generische Referenzen, Regeln und Vorlagen für browserbasiertes JavaScript-Reverse-Engineering

Diese öffentliche Version schließt ausdrücklich aus:

  • Private oder seitenbezogene Fallbibliotheken
  • Erfasste Test-Fixtures und Validierungskorpora
  • Konkrete Benchmark-Ziele, Anmeldeinformationen und Wiedergabenotizen, die mit benannten Seiten verknüpft sind

Kernarbeitsablauf

Beginnen Sie mit dem kleinsten zuverlässigen Kontext:

  • unbekanntes Ziel: führen Sie node scripts/js_reverse_ops.js <target-url-or-file> [--json] aus
  • vorhandene Notizen, Hook-Protokolle oder Fehlerzusammenfassungen: führen Sie node scripts/map_case_to_pattern.js <notes.md> aus und übergeben Sie --notes <notes.md> an scripts/js_reverse_ops.js
  • ausführbarer Playbook-Durchlauf: führen Sie node scripts/run_playbook.js <target> --notes <notes.md> --out runs/current aus, um ein Runbook, einen Routenplan, Bootstrap-Behauptungs-/Provenienz-/Risiko-/Wiedergabeartefakte und ein Hook-Gerüst auszugeben
  • nächster Operator-Befehl: führen Sie node scripts/recommend_next_action.js runs/current --json aus, wenn ein Ausführungsverzeichnis existiert, aber Laufzeit-, Wiedergabe- oder Bereitschaftsblockaden den nächsten Schritt unklar machen
  • lokales JS- oder HTML-Ziel: führen Sie scripts/triage_js.sh <path> aus und dann den kleinsten Extraktor, der zur Zielfamilie passt
  • browserbasiertes Ziel: überprüfen Sie die Browser- und Bridge-Gesundheit, bevor Sie Laufzeitbeweise sammeln
  • Anti-Analyse-Symptome: führen Sie node scripts/select_anti_detection_profile.js --symptoms "<symptoms>" aus, bevor Sie die Hook- oder Browser-Strategie ändern; die Profilauswahl ändert nur die Beobachtungsstrategie und muss dennoch durch Laufzeit-/Wiedergabeverifikation gefolgt werden
  • öffentliche Qualitätskontrolle: führen Sie node scripts/run_public_benchmarks.js aus, bevor Sie veröffentlichen oder nachdem Sie Router, Pattern-Speicher, Beispiele oder Playbooks geändert haben
  • Risikoaudit für öffentliche Veröffentlichung: führen Sie node scripts/explain_public_release_risk.js --json --strict aus, um Risiken durch verfolgte Dateien, Geheimnisse, Pfade, Aufzeichnungen und generierte Artefakte zu erklären, bevor Sie pushen
  • öffentliche Fähigkeitszusammenfassung: führen Sie node scripts/generate_capability_scorecard.js aus, wenn Sie diese Fähigkeit mit anderen Reverse-Engineering-Paketen vergleichen
  • Marktlücken-Zusammenfassung: führen Sie node scripts/generate_market_gap_scorecard.js aus, wenn Sie entscheiden, wie Sie diese Fähigkeit im Vergleich zu fortgeschrittenen Reverse-Engineering-Fähigkeiten und MCP-Toolchains verbessern können
  • externe Regressionsmatrix: führen Sie node scripts/compare_external_skill_matrix.js --json aus, um diese Fähigkeit mit Browser-MCP, statischen Dekompilierern, agentischem JS-RE und domänenübergreifenden RE-Profilen zu vergleichen
  • Browser-MCP-Smoke-Planung: führen Sie node scripts/plan_browser_mcp_smoke.js --server-family chrome_devtools_mcp --json aus, bevor Sie adapterspezifische Browser-Smoke-Checks durchführen
  • Browser-MCP-Smoke-Verifikation: führen Sie node scripts/verify_browser_mcp_smoke_record.js --record <mcp-execution.json> --json aus, bevor Sie Adapter-Smoke-Beobachtungen behaupten
  • Browser-MCP-Delivery-Loop: führen Sie node scripts/run_mcp_delivery_loop.js <target> --record <mcp-execution.json> --out runs/current --json aus, um in einem Durchlauf Gerüst zu erstellen, zu verifizieren, zu fördern, zu validieren und die Bereitschaft zu bewerten
  • Diagnose von Wiedergabefehlern: führen Sie node scripts/diagnose_replay_failure.js --run-dir runs/current --json aus oder übergeben Sie --replay-record <record.json>, bevor Sie den Signaturcode ändern
  • Generierung von Wiedergabeclients: führen Sie node scripts/generate_replay_delivery_client.js --record <accepted-replay.json> --out runs/current/replay-client --json aus, um bereinigte Node- und Python-Wiedergabeclients zu erstellen
  • Validierung von Wiedergabeclients: führen Sie node scripts/validate_replay_delivery_client.js runs/current/replay-client --json aus, bevor Sie generierte Clients als Übergabeartefakte behandeln
  • Statisches Wahrheitstor: führen Sie node scripts/assess_static_recovery_truth.js --original <input.js> --recovered <output.js> --json aus, bevor Sie lesbare statische Ausgabe fördern
  • Statische Planung mit Quellkarten-Priorität: wenn ein Bundle sourceMappingURL, sourceURL, Inline-Karten oder X-SourceMap-Notizen enthält, führen Sie node scripts/plan_static_toolchain.js <bundle.js> --json aus, bevor Sie AST-Bereinigung durchführen
  • Domänenübergabevalidierung: führen Sie node scripts/validate_domain_handoff_record.js --record <handoff-record.json> --json --strict aus, bevor Sie WASM-, Paket-, Mobil-, Native- oder Debugger-Ergebnisse in JS-Beweise einfließen lassen
  • CLI-Wrapper: verwenden Sie node scripts/jsro.js <command> oder das jsro-Paket-Bin für die Befehle route, run, validate, next, benchmark, scorecard, marketgap, releaserisk, externalmatrix, mcpsmoke, mcpsmokeverify, mcploop, replaydiagnose, replayclient, replayclientcheck, statictruth, handoff, handoffcheck, install und publish
  • Ein-Befehl-Installation oder -Veröffentlichung: verwenden Sie bash scripts/install_local.sh und bash scripts/publish_release.sh
  • akzeptierte Antwort plus verwirrende browser-sichtbare Werte: untersuchen Sie die seitenbezogene Render- und Unterdrückungslogik, bevor Sie zur Signaturwiederherstellung übergehen, und verwenden Sie playbooks/accepted-response-hidden-dom.md
  • akzeptierte Antwort plus seitenbezogene eingebettete Schriftart- oder Glyphen-Entitäten: extrahieren Sie die aktuelle Antwort-Schriftart, lösen Sie die Glyphen-Zuordnung im Seitenbereich und verwenden Sie playbooks/embedded-runtime-font-mapping.md
  • Wiedergabe schlägt immer noch fehl, selbst nachdem ein akzeptierter Digest wiederhergestellt wurde: überprüfen Sie die Cookie-Schreibreihenfolge beim Bootstrap, Digest-Sammler und die zusammengesetzte Cookie-Montage, dann verwenden Sie playbooks/bootstrap-digest-ladder.md
  • Ein Endpunkt gibt immer wieder JavaScript zurück und gibt Arrays erst zurück, nachdem das Skript ausgeführt und gegen denselben Pfad wiedergegeben wurde: behandeln Sie es als eine iterative Warmup-Kette, anstatt nach einem zweiten versteckten Endpunkt zu suchen, und verwenden Sie playbooks/iterative-script-warmup-same-endpoint.md
  • Der Signaturgeber hängt von einer serverseitigen Zeit und einem WASM- oder Modul-Helfer ab: frieren Sie die Zeitquelle ein, beweisen Sie die genaue Signaturgeber-Eingabeform und verwenden Sie playbooks/server-time-gated-wasm-signer.md
  • Der Digest-Helfer-Name sieht standardmäßig aus, aber die Browserausgabe weicht sowohl von der Standardbibliothek als auch vom rohen lokalen Helfer ab: isolieren Sie zuerst die kleinste Laufzeit-Patch-Oberfläche und verwenden Sie playbooks/patched-runtime-digest-branch.md
  • Ein großes Bundle versteckt einen winzigen Laufzeit-Helfer, den Sie tatsächlich für die Wiedergabe benötigen: extrahieren Sie diesen Helfer zuerst, anstatt die gesamte Seite zu emulieren, und verwenden Sie playbooks/runtime-bundle-signer-extraction.md
  • Globale Token-Helfer fehlen oder sind irreführend, aber XMLHttpRequest.open überschreibt die geschützte URL mit dem Signaturgeber-Feld: behandeln Sie die überschriebene URL als Signaturgeber-Ausgabe, bewahren Sie die Skriptreihenfolge und den Laufzeitzustand und verwenden Sie playbooks/xhr-open-url-rewrite-runtime-replay.md
  • Der sichtbare Anfragevertrag ist stabil, aber verschiedene HTTP-Clients weichen ab: eskalieren Sie über eine Transportleiter, bevor Sie mehr Signaturgeber-Zustand erfinden, und verwenden Sie playbooks/transport-profile-ladder.md
  • Die Verifizierungsantwort sieht verrauscht oder pessimistisch aus, während Datenanfragen weiterhin erfolgreich sind: behandeln Sie den Datenendpunkt als Akzeptanz-Orakel und verwenden Sie playbooks/lenient-verify-data-gate.md
  • Die Seite zeigt eine einfache Anfrage oder ein Helfer-Feld, aber spätere Seiten schlagen mit einem tokenförmigen Tor fehl: beweisen Sie, ob die sichtbare Anfrage ein Köder ist, bevor Sie zur vollständigen VM-Wiederherstellung ausweiten, und verwenden Sie playbooks/decoy-page-request-hidden-token-gate.md
  • Ein Challenge-Bild ist ein festes kleines Gitter mit einem Glyphen oder Symbol pro Zelle: lösen Sie zuerst den Gitterzuweisungspfad und verwenden Sie playbooks/grid-challenge-template-matching.md
  • Eine mehrstufige Challenge benötigt ein frisches Neuladen, einen gesäten Signaturgeber-Beweis und verwendet dann einen akzeptierten Stufenwert als nächsten Schlüssel: validieren Sie die erste Basislinienanfrage, bevor Sie nachgelagerte Entschlüsselungen lösen, und verwenden Sie playbooks/fresh-reload-seeded-signer-step-key-ladder.md
  • Ein Wiedergabepfad funktioniert für Runde eins, aber spätere Runden erreichen Parität erst nach Wiedergabe der vorherigen Runde: bewahren Sie die explizite gleiche-Seiten-Rundenleiter und verwenden Sie playbooks/same-page-prior-round-signer-replay.md
  • Desktop-HTML ist instabil, aber ein Mobil- oder App-Anfrageprofil landet auf einer Shell-Seite mit späterer JSON-Hydrierung: stellen Sie zuerst den Shell-Anfrage-Wrapper und die Routenkarte wieder her, dann verwenden Sie playbooks/mobile-shell-api-pivot.md
  • Für gebündelte Kryptobibliotheken, deren Primitive umgebungsabhängig sind (Browser- versus Sandbox-Zweige, modifizierte Base64-Alphabete oder Hash-Konstanten, Sandbox-Token werden abgelehnt, während Browser-Token passen), leiten Sie zu playbooks/env-gated-crypto-differential.md.
  • Für zustandsbehaftete VM-Signaturgeber, deren erfasste Token-URLs erfolgreich wiedergegeben werden, leiten Sie zu playbooks/browser-assisted-token-replay.md, bevor Sie eine VM-semantische Wiederherstellung versuchen.
  • Für benutzerdefinierte VM-Signaturgeber, die ein browserfreies lokales Orakel benötigen, leiten Sie zu playbooks/jsdom-native-vm-differential.md und vergleichen Sie Anweisungs- und Konstantenströme mit einer instrumentierten Browser-Ground-Truth.
  • Für kurzlebige Token leiten Sie zu playbooks/short-ttl-inline-proxy.md: senden Sie die echte Anfrage von innerhalb der Token-berechnenden Umgebung über einen Promise-basierten Ressourcen-Interceptor.
  • Gepackter oder VM-ähnlicher Code: bewahren Sie das ursprüngliche Artefakt, stellen Sie die Struktur schrittweise wieder her und kennzeichnen Sie verifizierte Semantiken
  • Wiedergabe-Übergabe: exportieren Sie ein stabiles Artefakt-Bundle, bevor Sie Node- oder Python-Delivery-Code schreiben

Best-Tool-Baseline

Verwenden Sie integrierte Skripte für Weiterleitung, Beweise, Artefakte und Wiederholbarkeit. Verwenden Sie Spezialwerkzeuge nur für die enge Aufgabe, in der sie gut sind:

  • Quellkarten oder Originalmodule zuerst, vor jedem Entschleierungsdurchlauf
  • webcrack für gängige obfuscator.io, webpack-ähnliche Bundles, String-Arrays und erste Entbündelung
  • wakaru für moderne minimierte Ausgabe, bei der Syntaxnormalisierung und Lesbarkeit wichtiger sind als Laufzeitwahrheit
  • ast-grep, Babel oder recast für kleine gezielte strukturelle Transformationen
  • humanify oder einen anderen LLM-Umbenenner nur nach der Bereinigung des Codes und nur dann, wenn die Identifikator-Wiederherstellung es wert ist, Ausschnitte außerhalb des Arbeitsbereichs zu senden

Lassen Sie nicht zu, dass externe Entschleierer Beweise ersetzen. Jedes wiederhergestellte Feld, Cookie, jede Signaturgeber-Eingabe oder jeder Wiedergabe-Helfer benötigt dennoch eine verifizierte Browser-Beobachtung oder ein lokales Wiedergabe-Artefakt.

Für einen breiteren Vergleich mit benachbarten Reverse-Engineering-Fähigkeiten und -Werkzeugen verwenden Sie references/external-skill-comparison-2026-06-04.md.

Sicherheitstor für die Veröffentlichung

Führen Sie vor der Veröffentlichung dieser öffentlichen Fähigkeit bash scripts/check_public_release.sh aus dem Stammverzeichnis des öffentlichen Repositorys aus. Das öffentliche Paket darf nicht enthalten:

  • private Seitennotizen, Live-Aufzeichnungen, Anmeldeinformationen, Cookies, Token oder kundenspezifische Pfade
  • generierte tmp/, Cache, __pycache__, .pyc oder lokale Benchmark-Ausgaben, die von git verfolgt werden
  • absolute lokale Benutzerpfade, Bearer-Token, GitHub-Token, Cloud-Schlüssel, JWTs oder private Schlüssel
  • unbereinigte Ausschnitte, die ein Live-Ziel über generische Beispiele hinaus identifizieren

Bewahren Sie private Korpora und lokale Validierungs-Bundles im privaten Arbeitsbereich auf. Veröffentlichen Sie nur generische Playbooks, Skripte, Vorlagen und bereinigte Beispiele.

Primäre Referenzen

  • references/env-rebuild-recipes.md
  • references/misdiagnosis-patterns.md
  • references/toolchain-bootstrap.md
  • references/standard-workflow-cookbook.md
  • references/stage-gates.md — harte Ein-/Austrittsbedingungen, Zeitfenster, Fallback-Kette
  • references/decision-handoff.md — Delta-only-Übergabeprotokoll zwischen Stufen/Sitzungen
  • references/task-types.md
  • examples/case-walkthrough-combinatorial-gates.md — bereinigte Erzählung: kombinatorische Umgebungsgatter + Kalibrierungsorakel
  • examples/case-walkthrough-timer-selfcheck-and-fake-200s.md — bereinigte Erzählung: Timer-Selbstprüfungen, zeitbasierte Schlüssel, 200-Fake-Daten-Labyrinth

Hinweis: Der Generator für wortgetreue Testumgebungen, der in der Vollversion referenziert wird, wird nur mit dem privaten Arbeitsbereich verteilt; dieses öffentliche Paket dokumentiert die entsprechenden Regeln in references/env-rebuild-recipes.md.

  • references/stages/locate.md
  • references/stages/runtime.md
  • references/stages/recover.md
  • references/stages/replay.md
  • references/rules/evidence-rules.md
  • references/rules/runtime-first.md
  • references/rules/routing-rules.md
  • references/rules/replay-rules.md

Hinweis zur Veröffentlichung

Diese öffentliche Variante ist für die Weitergabe als wiederverwendbares Fähigkeitspaket gedacht. Bewahren Sie private Fixtures, Live-Aufzeichnungen und kunden- oder seitenbezogene Notizen in einem separaten privaten Arbeitsbereich oder Repository auf.

Verwandte Skills