mcpField
1
1997-pro-web-reverse-casebook

1997-pro-web-reverse-casebook

github.com/firstruiセキュリティ4543 回インストール31 週間前に更新
リポジトリ

1997-pro-web-reverse-casebook について

Web JavaScript のリバースエンジニアリング向けに、1997.pro の記事を参照して、ベンダー・パラメーター・ランタイムの手掛かりから資料や証拠確認、実行スキルを案内するスキルです。主制御フローや現場での調査に代わるものではなく、着手点を示します。

主な機能

  1. 01ベンダーや技術的な手掛かりを分類
  2. 02参照資料と証拠確認の方向を提示
  3. 03リスク制御、CAPTCHA、難読化、ランタイムを扱う
  4. 04事例の知見を実行スキルへ引き継ぐ

活用シーン

  1. 01Akamai や Kasada のリスク制御の手掛かりを分類
  2. 02JSVMP や平坦化制御フローの復元方針を選ぶ
  3. 03CAPTCHA パラメーター連鎖の事例を探す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/firstrui/codex-reverse-skills --skill 1997-pro-web-reverse-casebook

インストール後、Claude Code で/1997-pro-web-reverse-casebookを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
article-index.md
browser-runtime-and-env.md
captcha-protocol-and-mobile.md
jsvmp-wasm-and-deobf.md
risk-fingerprint-and-vendors.md
routing-matrix.md

詳細

1997.pro Web リバース事例集

役割

このスキルは、1997.pro の公開記事コーパスを「事例ナレッジベース+シナリオルーター」にまとめたものです。

担当すること:

  • タスクにベンダー名、パラメーター名、シェルの形態、リスク管理の手掛かりが現れたとき、最も近い事例の種類をすばやく判断します。
  • まず読むべき reference、最初に調べる証拠の種類、最初に使う MCP アクションのセットを案内します。
  • 1997.pro の事例から得た知見を既存の実行スキルに橋渡しします。並行する別の統括フローは作りません。

代替しないもの:

  • $web-js-reverse-master-flow
  • $jsr-reverse
  • $mcp-js-reverse-playbook

複雑なタスクは引き続き、これらの統括スキルまたは実行スキルに戻る必要があります。このスキルが担当するのは、「どの種類の問題に似ているか、どこから切り込むべきか」だけです。

担当範囲:

  • このスキルは特定サイト/技術事例のナレッジベースです。1997.pro の記事体系に基づき、事例の参照先、技術的な手掛かり、着手の提案を提供します。
  • 大局的なフェーズ判定を引き継いだり、証拠ゲート -> locate -> recover -> runtime -> env-patch -> replay の主フローを書き換えたりしません。
  • 現在のタスクが正式なフェーズ切り替えに入っている場合、フェーズの裁定権は必ず $web-js-reverse-master-flow に戻してください。

デフォルトの連携

デフォルトの実行スタックは変更しません:

  • chrome-devtools-mcp
  • js-reverse
  • jshook

活用方法:

  • まず chrome-devtools-mcp と js-reverse を使い、実際のリクエスト、実際の中間状態、実際のトリガー操作を取得します。
  • 手掛かりが 1997.pro の特定の事例に似てきたら、このスキルを使って reference と専門スキルを選びます。
  • 難読化が強い場合、複雑な Hook、Stealth、高度なセマンティクス復元が必要な場合は、jshook を前面に出します。
  • 現在のタスクが正式なフェーズ切り替えに入っている場合、最終的なフェーズ判断は引き続き $web-js-reverse-master-flow に委ねます。

使用するタイミング

以下のいずれかに該当する場合、このスキルを使用します:

  • ユーザーが 1997.pro、サイト内の記事名、著者の関連記事に明示的に言及している、または「このブログの方法に沿って進めたい」と希望している場合
  • 手掛かりが特定のベンダー/製品/パラメーターを示している場合:
    • Akamai、Kasada、PX3、reese84、Incapsula、同盾 BlackBox、a_bogus
    • x-s3-s4e、desc、bx-pp、rid、fuid、fs
  • 手掛かりが特定のシェルやランタイムの問題を示している場合:
    • JSVMP、while + switch、dispatcher、227/226
    • wasm、worker、postMessage、storage.estimate
    • animationend、CSS アニメーションによる値の取得、run_js 検出、ブラウザーと Node の不一致
  • 求められているのが「事例参照/選定/クイックリファレンス」であり、単なるフローの編成ではない場合

重要な事例の手掛かり

問題はまず次の4つのグループに分け、すべての手掛かりをひとつの「大きなリバース問題」にまとめないでください:

1. リスク管理/ベンダーの手掛かり
  • Akamai
  • Kasada
  • PX / PX3
  • reese84 / Incapsula
  • 同盾 / BlackBox
  • a_bogus

デフォルトの見方:

  • まず token lane、sign lane、fingerprint lane、challenge lane が混在していないか疑います。
  • 優先して risk-fingerprint-and-vendors.md を読みます。
  • 通常は $web-js-reverse-master-flow の Phase 1 + Phase 3 に逆向きの影響を与えます。
2. CAPTCHA/業務フィールドの手掛かり
  • 腾讯滑块
  • 阿里滑块
  • _rand
  • fuid
  • fs
  • rid

デフォルトの見方:

  • 「位置/画像/角度のチェーン」と「軌跡/暗号化/署名検証のチェーン」を分けて考えます。
  • 腾讯/阿里のスライダー CAPTCHA は、ブラウザー特性チャネルと CAPTCHA の二重パラメーターチェーンの両方に該当しやすいです。
  • デフォルトでは captcha-protocol-and-mobile.md を読みます。
3. シェル層/難読化の手掛かり
  • JSVMP
  • 227
  • 226
  • 平坦流
  • dispatcher
  • while + switch
  • opcode
  • basearr

デフォルトの見方:

  • 先に環境を補うのではなく、まずシェル層を復元します。
  • デフォルトでは jsvmp-wasm-and-deobf.md を読みます。
  • $web-js-reverse-master-flow の Phase 2 に逆向きの影響を与えます。
4. ランタイム/ブリッジの手掛かり
  • wasm
  • protobuf
  • bx-pp
  • run_js
  • storage.estimate
  • animationend
  • worker
  • postMessage

デフォルトの見方:

  • builder / writer による遮蔽なのか、ブラウザー特性チャネルとランタイムの分岐なのかを先に判断します。
  • wasm/protobuf/bx-pp は recover 寄りです。
  • run_js/storage.estimate/animationend は runtime 寄りです。

使用順序

  1. まず routing-matrix.md を読み、シナリオを分類します。
  2. ユーザーが特定の記事やベンダーに言及した場合、または対応範囲を確認したい場合は、次に article-index.md を読みます。
  3. 現在のボトルネックに応じて、専門 reference を1つだけ読み込みます:
    • リスク管理、フィンガープリント、ベンダー製品:risk-fingerprint-and-vendors.md
    • ブラウザーチャネル、環境の補完、自動化への対抗:browser-runtime-and-env.md
    • JSVMP、平坦流、wasm、難読化解除:jsvmp-wasm-and-deobf.md
    • CAPTCHA、プロトコルパラメーター、モバイル端末の事例:captcha-protocol-and-mobile.md
  4. その後、最適な実行スキルにタスクを引き継ぎます。

強化ルール:

  • Akamai/Kasada/PX/reese84/同盾/a_bogus に該当する場合、証拠が非常に十分でない限り、purecalc の話を直接始めないでください。
  • JSVMP/227/226/平坦流/混淆 に該当する場合、デフォルトでは最小限のスライスだけを復元し、全体の beautify は行いません。
  • wasm/protobuf/rid/bx-pp に該当する場合、まず builder、ブリッジ層、書き戻し境界を探します。
  • run_js/storage.estimate/animationend に該当する場合、まずランタイム分岐の証拠として扱い、すぐに「オブジェクト不足」に分類しないでください。

引き継ぎルール

統括/証拠収集
  • 複雑な Web タスクはデフォルトで $web-js-reverse-master-flow に戻します。
  • フェーズ判定とツール化が必要な場合は $jsr-reverse に戻します。
  • 最小限のリクエストチェーン/sink の特定が必要な場合は、$jsr-locate または $js-reverse-trace-hook に戻します。
シェル層の復元
  • JSVMP / dispatcher / 平坦流:$jsr-recover
  • 制御フローの偽分岐の削除:$js-controlflow-truth-sampling-prune
  • エイリアス、文字列プール、多層代入:$js-ast-binding-alias-deobf
  • Wasm 型 VM:$js-wasm-vmp-ir-lifting
  • Webpack ランタイム/バンドルブリッジ:$js-webpack-runtime-node-reuse
ランタイムと環境の補完
  • ブラウザーと Node の分岐:$jsr-runtime
  • 最小限の環境移行:$env-patch
  • 実行はできるが結果がまだずれる場合:$js-runtime-diff-env-patching
  • デバッグ対策/DevTools との干渉:$js-reverse-env-antidebug
安定した再現/プロトコル
  • パラメーターチェーンの再生と回帰テスト:$js-reverse-sign-replay
  • CAPTCHA の二重パラメーターチェーン:$captcha-parameter-chain-bisection
  • schema のない protobuf バイナリ:$protobuf-schema-backfill
  • Android 側の QUIC / So パケットキャプチャのダウングレード:$android-quic-downgrade-hook-capture

你应该输出什么

使用本 skill 时,优先输出以下内容,而不是泛泛讲案例:

  • 当前目标最像哪类 1997.pro 案例
  • 该类案例的常见“隐藏状态载体 / 隐藏通道 / 壳形态”
  • 三个最先验证的现场证据点
  • 该读哪份 reference
  • 下一步应该切到哪个执行 skill,为什么
  • 当前仍未证明的假设

如果当前任务命中 JSVMP / 平坦流 / wasm / 混淆,必须额外输出:

  • 当前更像 dispatcher 壳、字符串解密壳、wasm 桥,还是浏览器特性通道
  • 关键状态载体是什么:ip/g、寄存器数组、栈对象、常量池、样式终态、storage、message 通道
  • 最小需要恢复到多深:只要入口 / builder,还是需要关键 opcode 家族 / imports / exports
  • 为什么当前应该先 recover、先 runtime,还是先回 locate

如果当前任务命中 Akamai/Kasada/PX/reese84/同盾/a_bogus/腾讯滑块/阿里滑块/rid/fuid/fs/bx-pp/run_js/storage.estimate/animationend,必须额外输出:

  • 这一类问题最常见的隐藏状态载体
  • 最可能的第一分叉点
  • 不该先做的误操作
  • 该回到 $web-js-reverse-master-flow 的哪个 phase

不要这样用

  • 不要把“厂商名相似”当成已经证明算法相同。
  • 不要跳过浏览器真实证据,直接套历史案例做纯算。
  • 不要默认加载全部 references;只读当前最相关的一份或两份。
  • 不要让案例经验盖过真实现场。这个 skill 提供的是“起刀位置”,不是证据本身。
  • 不要因为看到了 wasm 或 JSVMP 就默认全量 lifting / 全量反编译。

コメント