JS Reverse Ops
このスキルは、アドホックなデバッグセッションではなく、構造化されたリバースエンジニアリングワークフローとして使用してください。
はじめに
NOW: リクエストを分類します(署名復元、オフライン難読化解除、ランタイムトレース、環境再構築など)。該当するタスクタイプの参照ファイルのみをロードします。NOW: ブラウザJSをローカルで実行する作業が含まれる場合は、最初にreferences/env-rebuild-recipes.mdを読んでください。最もコストのかかるサンドボックスのミスを防ぐための10のレシピカード(ネイティブマスククラス、クラスタグプローブ、no-host-builtins、リアルタイマー、インラインプロキシ、キャリブレーションオラクル)が含まれています。NOW: 依存関係やツールに疑問がある場合は、プローブを作成する前にreferences/toolchain-bootstrap.mdに従ってください。NEXT: 再構築されたフローが「ほぼ動作する」場合(最初のトークンは有効だが後続で失敗、200だが間違った応答、説明できないキーの乖離など)、プロービングを中止し、references/misdiagnosis-patterns.mdを読んでください。ACT: コアワークフローの該当するステージに入り、実行してください。確認時点で停止しないでください。
範囲
この公開リリースには以下が含まれます:
Locate、Runtime、Recover、Replayのステージベースルーティング- 抽出、ランタイムキャプチャ正規化、リプレイ足場、成果物生成のための再利用可能なスクリプト
- ブラウザ駆動のJavaScriptリバースエンジニアリングのための汎用リファレンス、ルール、テンプレート
この公開リリースでは以下を意図的に除外しています:
- プライベートまたはサイト固有のケースライブラリ
- キャプチャされたテストフィクスチャと検証コーパス
- 特定の名前付きサイトに紐づく具体的なベンチマークターゲット、認証情報、リプレイノート
コアワークフロー
最小の信頼できるコンテキストから開始します:
- 未知のターゲット:
node scripts/js_reverse_ops.js <target-url-or-file> [--json]を実行します - 既存のノート、フックログ、または障害サマリー:
node scripts/map_case_to_pattern.js <notes.md>を実行し、--notes <notes.md>をscripts/js_reverse_ops.jsに渡します - 実践可能なプレイブックの実行:
node scripts/run_playbook.js <target> --notes <notes.md> --out runs/currentを実行し、ランブック、ルート計画、ブートストラップクレーム/出所/リスク/リプレイ成果物、フックスキャフォールドを出力します - 次のオペレーターコマンド:ラン・ディレクトリが存在するが、ランタイム、リプレイ、または準備完了のブロッカーが次のステップを不明瞭にする場合は、
node scripts/recommend_next_action.js runs/current --jsonを実行します - ローカルJSまたはHTMLターゲット:
scripts/triage_js.sh <path>を実行し、続いてターゲットファミリーに一致する最小の抽出ツールを実行します - ブラウザバックアップターゲット:ランタイムエビデンスを収集する前に、ブラウザとブリッジの健全性を確認します
- アンチアナリシス症状:フックやブラウザ戦略を変更する前に、
node scripts/select_anti_detection_profile.js --symptoms "<symptoms>"を実行します。プロファイルの選択は観測戦略のみを変更し、その後もランタイム/リプレイ検証が必要です - パブリック品質チェック:公開前、またはルーター、パターンメモリ、例、プレイブックを変更した後は、
node scripts/run_public_benchmarks.jsを実行します - 公開リリースリスク監査:プッシュ前に、
node scripts/explain_public_release_risk.js --json --strictを実行し、追跡ファイル、秘密、パス、キャプチャ、生成成果物のリスクを説明します - 公開機能サマリー:このスキルと他のリバースエンジニアリングパッケージを比較する場合は、
node scripts/generate_capability_scorecard.jsを実行します - 市場ギャップサマリー:このスキルを高度なリバースエンジニアリングスキルやMCPツールチェーンと比較して改善する方法を決定する場合は、
node scripts/generate_market_gap_scorecard.jsを実行します - 外部リグレッションマトリックス:
node scripts/compare_external_skill_matrix.js --jsonを実行し、このスキルをブラウザMCP、静的デコンパイラ、エージェンティックJSリバース、クロスドメインREプロファイルと比較します - ブラウザMCPスモーク計画:アダプター固有のブラウザスモークチェックを実行する前に、
node scripts/plan_browser_mcp_smoke.js --server-family chrome_devtools_mcp --jsonを実行します - ブラウザMCPスモーク検証:アダプタースモーク観測を主張する前に、
node scripts/verify_browser_mcp_smoke_record.js --record <mcp-execution.json> --jsonを実行します - ブラウザMCPデリバリーループ:
node scripts/run_mcp_delivery_loop.js <target> --record <mcp-execution.json> --out runs/current --jsonを実行し、スキャフォールド、検証、プロモート、バリデーション、準備完了評価を1回のパスで行います - リプレイ障害診断:署名コードを変更する前に、
node scripts/diagnose_replay_failure.js --run-dir runs/current --jsonまたは--replay-record <record.json>を実行します - リプレイクライアント生成:
node scripts/generate_replay_delivery_client.js --record <accepted-replay.json> --out runs/current/replay-client --jsonを実行し、サニタイズされたNodeおよびPythonリプレイクライアントを生成します - リプレイクライアント検証:生成されたクライアントをハンドオフ成果物として扱う前に、
node scripts/validate_replay_delivery_client.js runs/current/replay-client --jsonを実行します - 静的真理ゲート:読み取り可能な静的出力をプロモートする前に、
node scripts/assess_static_recovery_truth.js --original <input.js> --recovered <output.js> --jsonを実行します - ソースマップファースト静的計画:バンドルに
sourceMappingURL、sourceURL、インラインマップ、またはX-SourceMapノートがある場合は、ASTクリーンアップの前にnode scripts/plan_static_toolchain.js <bundle.js> --jsonを実行します - ドメインハンドオフ検証:WASM、パケット、モバイル、ネイティブ、またはデバッガの結果をJSエビデンスにマージする前に、
node scripts/validate_domain_handoff_record.js --record <handoff-record.json> --json --strictを実行します - CLIラッパー:
node scripts/jsro.js <command>またはjsroパッケージbinを、route、run、validate、next、benchmark、scorecard、marketgap、releaserisk、externalmatrix、mcpsmoke、mcpsmokeverify、mcploop、replaydiagnose、replayclient、replayclientcheck、statictruth、handoff、handoffcheck、install、publishコマンドに使用します - ワンコマンドインストールまたはリリース:
bash scripts/install_local.shおよびbash scripts/publish_release.shを使用します
- 受理された応答と、ブラウザで表示される値が矛盾する場合:ページ側のレンダリングと抑制ロジックを調査してから署名復元に進み、
playbooks/accepted-response-hidden-dom.mdを使用します - 受理された応答と、ページローカルの埋め込みフォントまたはグリフエンティティがある場合:現在の応答フォントを抽出し、ページスコープでグリフマップを解決し、
playbooks/embedded-runtime-font-mapping.mdを使用します - 1つの受理されたダイジェストが復元されてもリプレイが失敗する場合:ブートストラップ時のCookie書き込み順序、ダイジェストコレクター、ラップされたCookieアセンブリを検査し、
playbooks/bootstrap-digest-ladder.mdを使用します - 1つのエンドポイントがJavaScriptを返し続け、スクリプトが実行されて同じパスに対してリプレイされた後にのみ配列を返す場合:2つ目の隠しエンドポイントを探す代わりに、反復的なウォームアップチェーンとして扱い、
playbooks/iterative-script-warmup-same-endpoint.mdを使用します - 署名器がサーバー発行の1つの時間と1つのwasmまたはモジュールヘルパーに依存する場合:時間ソースを固定し、正確な署名器入力形状を証明し、
playbooks/server-time-gated-wasm-signer.mdを使用します - ダイジェストヘルパー名は標準的だが、ブラウザ出力が標準ライブラリと生のローカルヘルパーの両方から乖離する場合:最初に最小のランタイムパッチサーフェスを分離し、
playbooks/patched-runtime-digest-branch.mdを使用します - 1つの大きなバンドルが、リプレイに実際に必要な小さなランタイムヘルパーを隠している場合:ページ全体をエミュレートする代わりに、そのヘルパーを最初に抽出し、
playbooks/runtime-bundle-signer-extraction.mdを使用します - グローバルトークンヘルパーが存在しないか誤解を招くが、
XMLHttpRequest.openが署名器フィールドで保護されたURLを書き換える場合:書き換えられたURLを署名器出力として扱い、スクリプト順序とランタイム状態を保持し、playbooks/xhr-open-url-rewrite-runtime-replay.mdを使用します - 可視のリクエスト契約は安定しているが、異なるHTTPクライアントで結果が異なる場合:より多くの署名器状態を発明する前に、トランスポートラダーを通じてエスカレートし、
playbooks/transport-profile-ladder.mdを使用します - 検証応答がノイズが多いか悲観的に見えるが、データリクエストは成功する場合:データエンドポイントを受理オラクルとして扱い、
playbooks/lenient-verify-data-gate.mdを使用します - ページは1つの単純なリクエストまたは1つのヘルパーフィールドを公開するが、後続のページはトークン形状のゲートで失敗する場合:可視のリクエストがデコイであることを証明してからVM回復に進み、
playbooks/decoy-page-request-hidden-token-gate.mdを使用します - 1つのチャレンジ画像が固定の小さなグリッドで、セルごとに1つのグリフまたはシンボルがある場合:最初にグリッド割り当てパスを解決し、
playbooks/grid-challenge-template-matching.mdを使用します - マルチステージチャレンジが新しいリロード、1つのシードされた署名器プルーフを必要とし、その後1つの受理されたステージ値を次のキーとして使用する場合:最初のベースラインリクエストを検証してからダウンストリーム復号を解決し、
playbooks/fresh-reload-seeded-signer-step-key-ladder.mdを使用します - 1つのリプレイパスがラウンド1では機能するが、後続のラウンドでは前のラウンドのリプレイ後にのみパリティを回復する場合:明示的な同ページラウンドラダーを保持し、
playbooks/same-page-prior-round-signer-replay.mdを使用します - デスクトップHTMLは不安定だが、モバイルまたはアプリのリクエストプロファイルがシェルページに着地し、後でJSONハイドレーションがある場合:最初にシェルリクエストラッパーとルートマップを復元し、その後
playbooks/mobile-shell-api-pivot.mdを使用します - バンドルされた暗号ライブラリのプリミティブが環境でゲートされている場合(ブラウザとサンドボックスブランチ、変更されたbase64アルファベットやハッシュ定数、サンドボックストークンは拒否されるがブラウザトークンは通過する)、
playbooks/env-gated-crypto-differential.mdにルーティングします。 - 状態を持つVM署名器のキャプチャされたトークンURLが正常にリプレイされる場合、VMセマンティックリカバリを試みる前に
playbooks/browser-assisted-token-replay.mdにルーティングします。 - ブラウザフリーのローカルオラクルを必要とするカスタムVM署名器の場合、
playbooks/jsdom-native-vm-differential.mdにルーティングし、命令と定数ストリームを1つのインストルメント化されたブラウザグラウンドトゥルースと比較します。 - 短いTTLのトークンの場合、
playbooks/short-ttl-inline-proxy.mdにルーティングします:Promiseベースのリソースインターセプターを介して、トークン計算ハーネス内から実際のリクエストを送信します。
- パックまたはVMのようなコード:元の成果物を保存し、構造を段階的に回復し、検証済みのセマンティクスをラベル付けします
- リプレイハンドオフ:NodeまたはPythonデリバリーコードを作成する前に、安定した成果物バンドルをエクスポートします
ベストツールベースライン
ルーティング、エビデンス、成果物、再現性には組み込みスクリプトを使用します。スペシャリストツールは、それらが得意とする狭いジョブにのみ使用します:
- 難読化解除パスの前に、最初にソースマップまたは元のモジュールを確認します
- 一般的なobfuscator.io、webpackのようなバンドル、文字列配列、および最初のパスのアンバンドルには
webcrackを使用します - 構文の正規化と可読性がランタイムの真実よりも重要な、最新の最小化出力には
wakaruを使用します - 小さなターゲットを絞った構造変換には
ast-grep、Babel、またはrecastを使用します humanifyまたは別のLLMリネーマーは、コードをサニタイズした後でのみ、そして識別子の回復がワークスペース外にスニペットを送信する価値がある場合にのみ使用します
外部の難読化解除ツールがエビデンスを置き換えることを許可しないでください。復元されたすべてのフィールド、Cookie、署名器入力、またはリプレイヘルパーは、検証済みのブラウザ観測またはローカルリプレイ成果物を必要とします。
隣接するリバースエンジニアリングスキルやツールとの広範な比較については、references/external-skill-comparison-2026-06-04.md を使用します。
公開安全性ゲート
この公開スキルを公開する前に、公開リポジトリルートから bash scripts/check_public_release.sh を実行します。公開パッケージに以下が含まれていてはなりません:
- プライベートサイトノート、ライブキャプチャ、認証情報、Cookie、トークン、または顧客固有のパス
- gitによって追跡される生成された
tmp/、キャッシュ、__pycache__、.pyc、またはローカルベンチマーク出力 - 絶対ローカルユーザーパス、ベアラートークン、GitHubトークン、クラウドキー、JWT、または秘密鍵
- 一般的な例を超えてライブターゲットを識別する、サニタイズされていないスニペット
プライベートコーパスとローカル検証バンドルはプライベートワークスペースに保持します。汎用プレイブック、スクリプト、テンプレート、サニタイズされた例のみを公開します。
主要リファレンス
references/env-rebuild-recipes.mdreferences/misdiagnosis-patterns.mdreferences/toolchain-bootstrap.mdreferences/standard-workflow-cookbook.mdreferences/stage-gates.md— 厳格な開始/終了条件、タイムボックス、フォールバックチェーンreferences/decision-handoff.md— ステージ/セッション間のデルタのみのハンドオフプロトコルreferences/task-types.mdexamples/case-walkthrough-combinatorial-gates.md— サニタイズされたナラティブ:組み合わせ環境ゲート + キャリブレーションオラクルexamples/case-walkthrough-timer-selfcheck-and-fake-200s.md— サニタイズされたナラティブ:タイマーセルフチェック、時間派生キー、200-偽データ迷路
注:フルエディションに含まれる完全再現ハーネススキャフォールディングジェネレーターは、プライベートワークスペースでのみ配布されます。この公開パッケージは、同等のルールを 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
公開ノート
この公開バリアントは、再利用可能なスキルパッケージとして共有することを目的としています。プライベートフィクスチャ、ライブキャプチャ、顧客またはサイト固有のノートは、別のプライベートワークスペースまたはリポジトリに保持してください。