JS Reverse Ops
Nutzen Sie diese Fähigkeit als strukturierten Reverse-Engineering-Arbeitsablauf, nicht als Ad-hoc-Debugging-Sitzung.
Starten Sie hier
NOW: Klassifizieren Sie die Anfrage (Signaturwiederherstellung, Offline-Entschleierung, Laufzeitverfolgung, Umgebungsneubau, ...) und laden Sie nur die referenzierten Dateien für diesen Aufgabentyp.NOW: Wenn die Arbeit das lokale Ausführen von Browser-JS beinhaltet, lesen Sie zuerstreferences/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.NOW: Wenn Abhängigkeiten oder Tooling unklar sind, folgen Siereferences/toolchain-bootstrap.md, bevor Sie Sonden schreiben.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 Siereferences/misdiagnosis-patterns.md.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,WiederherstellungundWiedergabe - 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>anscripts/js_reverse_ops.js - ausführbarer Playbook-Durchlauf: führen Sie
node scripts/run_playbook.js <target> --notes <notes.md> --out runs/currentaus, 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 --jsonaus, 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.jsaus, 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 --strictaus, 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.jsaus, wenn Sie diese Fähigkeit mit anderen Reverse-Engineering-Paketen vergleichen - Marktlücken-Zusammenfassung: führen Sie
node scripts/generate_market_gap_scorecard.jsaus, 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 --jsonaus, 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 --jsonaus, 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> --jsonaus, 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 --jsonaus, 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 --jsonaus 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 --jsonaus, 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 --jsonaus, 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> --jsonaus, bevor Sie lesbare statische Ausgabe fördern - Statische Planung mit Quellkarten-Priorität: wenn ein Bundle
sourceMappingURL,sourceURL, Inline-Karten oderX-SourceMap-Notizen enthält, führen Sienode scripts/plan_static_toolchain.js <bundle.js> --jsonaus, bevor Sie AST-Bereinigung durchführen - Domänenübergabevalidierung: führen Sie
node scripts/validate_domain_handoff_record.js --record <handoff-record.json> --json --strictaus, 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 dasjsro-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.shundbash 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 Sieplaybooks/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.mdund 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
webcrackfür gängige obfuscator.io, webpack-ähnliche Bundles, String-Arrays und erste Entbündelungwakarufür moderne minimierte Ausgabe, bei der Syntaxnormalisierung und Lesbarkeit wichtiger sind als Laufzeitwahrheitast-grep, Babel oderrecastfür kleine gezielte strukturelle Transformationenhumanifyoder 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__,.pycoder 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.mdreferences/misdiagnosis-patterns.mdreferences/toolchain-bootstrap.mdreferences/standard-workflow-cookbook.mdreferences/stage-gates.md— harte Ein-/Austrittsbedingungen, Zeitfenster, Fallback-Kettereferences/decision-handoff.md— Delta-only-Übergabeprotokoll zwischen Stufen/Sitzungenreferences/task-types.mdexamples/case-walkthrough-combinatorial-gates.md— bereinigte Erzählung: kombinatorische Umgebungsgatter + Kalibrierungsorakelexamples/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.mdreferences/stages/runtime.mdreferences/stages/recover.mdreferences/stages/replay.mdreferences/rules/evidence-rules.mdreferences/rules/runtime-first.mdreferences/rules/routing-rules.mdreferences/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.