brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
web-js-reverse-master-flow用于复杂 Web/JS 网站还原的总控流程。适用于 sign/token/cookie/header/body/websocket 字段逆向、重混淆、花指令、控制流平坦化、JSVMP、worker/wasm、浏览器与 Node 差分、补环境、本地复现与回归,也覆盖 Akamai/Kasada/PX/reese84/同盾/a_bogus/腾讯滑块/阿里滑块/JSVMP/227/226/wasm/protobuf/rid/fuid/fs/bx-pp/run_js/storage.estimate/animationend 等案例线索。默认按 jshook + js-reverse + chrome-devtools-mcp 三 MCP 协同调试分析,并在 locate、recover、runtime、env-pa…
Independent GitHub snapshot · Automated classification · Original documentation governs
这个 skill 是复杂 Web/JS 逆向项目的总控入口。
它不替代专项 skill,而是负责:
默认情况下,复杂网站还原一律从这个 skill 起手,而不是直接并行触发多个总控 skill。
职责边界:
Akamai/Kasada/PX/reese84/同盾/a_bogus/腾讯滑块/阿里滑块/JSVMP/227/226/wasm/protobuf/rid/fuid/fs/bx-pp/run_js/storage.estimate/animationend 这类强线索,也只是帮助预路由,不改变它“先判阶段、后选专项”的总控角色。$1997-pro-web-reverse-casebook 或其他专项 skill 提供。如果现场线索已经明显命中某类公开案例,应同步加载 $1997-pro-web-reverse-casebook 做案例预路由,但阶段选择仍由本 skill 决定。
这个 skill 默认采用三 MCP 协同,不把它们视作可选项:
chrome-devtools-mcp
负责浏览器接管、页面级调试、Network/DOM/Runtime/CDP 断点与调用栈观察,是最直接的现场取证面。js-reverse
负责逆向工作流级别的源码搜索、Hook、断点、代码采集、运行时证据沉淀、WebSocket/Storage/Session 状态分析。jshook
负责更重的 JS 逆向分析、反混淆、Stealth、Hook、浏览器自动化、调试器与代码理解增强。使用规则:
chrome-devtools-mcp 和 js-reverse 拿真实样本与现场证据。jshook。从以下输入开始:
URL 或目标页面:
目标请求 / 字段 / cookie / 消息:
触发动作:
当前现象:
已有证据:
目标:
约束:
先补齐输入,再决定阶段。
这个 skill 的首要目标之一,是防止在难站点里陷入“长时间没有证据增量的深挖漩涡”。
以下任一情况出现时,视为已经开始打转:
强制规则:
允许的升级方向只有这些:
locate 卡住:扩大真实触发范围、改抓 initiator、改用断点栈或浏览器侧调用recover 卡住:降低恢复深度、退回 locate 重新坐实边界,或改 black-box reuseruntime 卡住:回退到第一个稳定浏览器快照,重建分叉表,再只 patch 一个状态面env-patch 卡住:停止继续补对象,改走浏览器辅助执行、远程调用或最小代理方案禁止:
以下线索出现时,不要先猜算法;先把它们映射到更可能的阶段:
Akamai、Kasada、PX、PX3、reese84、Incapsula、同盾、BlackBox、a_bogusPhase 1 的请求链 + Phase 3 的风控 / 指纹 / 挑战分叉rid、protobuf、x-s3-s4e、desc、bx-ppPhase 1 的 builder / writer 边界,必要时进入 Phase 2 看 wasm / 封装桥腾讯滑块、阿里滑块、_rand、fuid、fsPhase 1、Phase 3JSVMP、227、226、while(true)+switch、dispatcher、basearrPhase 2run_js、storage.estimate、animationend、postMessage、workerPhase 3 的运行时差分,再决定是否进入 Phase 4如果这些线索同时出现,优先顺序固定为:
证据门 -> 写入边界 -> 壳层恢复(必要时) -> 运行时差分 -> Node 迁移
目标:
要做:
$mcp-js-reverse-playbook 跑最小链路。chrome-devtools-mcp 或 $js-reverse 建立浏览器基线样本。reverse-records/总览.md。reverse-records/请求链路.md。退出条件:
禁止:
卡住信号:
必切动作:
chrome-devtools-mcp 的 Network / 调用栈现场,而不是先读源码主 skill:
$find-crypto-entry$jsr-locate$js-reverse-trace-hookMCP 优先级:
chrome-devtools-mcp:Network、DOM 触发点、调用栈与断点现场js-reverse:请求 initiator、Hook、代码采集、storage/session/websocketjshook:当普通搜索/断点不足以稳定定位时,补充更重的 Hook 与逆向分析目标:
entry -> builder -> writer 关系和上游依赖链。适用:
Set-Cookie、挑战、session、response-driven 依赖。退出条件:
切换到 Phase 2 的信号:
while(true) + switchJSVMP227/226/basearr/opcode/ip/gworker/wasm/webpack runtime_0x 字符串表、动态 eval/FunctionLL()[XX(XX)]()、多套字符串解密器、动态回填字符串Akamai/Kasada/PX 类动态字符串与桥接壳bx-pp、rid、protobuf builder 的真实 builder 被 dispatcher 遮住卡住信号:
必切动作:
entry -> builder -> writer 三段,不再讨论全链路Phase 2主 skill:
$jsr-recover补充 skill:
$js-controlflow-truth-sampling-prune$js-ast-binding-alias-deobfMCP 优先级:
js-reverse:collect_code、trace、断点、Hook、源码级证据jshook:反混淆、Stealth、复杂 Hook、调试器控制、脚本级语义压缩chrome-devtools-mcp:保留浏览器现场,验证 dispatcher/bridge 在真实页面中的执行路径目标:
要做:
JSVMP/227/226 至少补齐:入口、状态变量、关键 opcode 家族、桥接合同。wasm 至少补齐:下载点、实例化方式、imports、exports、JS 到 wasm 的调用桥。Akamai/Kasada/PX 类重混淆,先冻结样本,再提字符串解密映射与最小执行片段。退出条件:
$jsr-locate 坐实 sink,或进入 $jsr-runtime 处理运行时分叉。铁律:
window/document/navigator。卡住信号:
必切动作:
opcode 家族或 bridgePhase 1Phase 3停止纪律:
worker/wasm/JSVMP/227/226 复合壳场景里,若 black-box reuse 已能支撑下游,不再继续全量 lifting主 skill:
$jsr-runtime补充 skill:
$js-runtime-diff-env-patching$js-reverse-env-antidebugMCP 优先级:
chrome-devtools-mcp:建立浏览器正常路径与运行时现场js-reverse:抓 storage/session/network/websocket/hook 中间态jshook:反调试、Stealth、环境对抗、运行时行为补充验证目标:
优先分类:
sign lane 与 token lane 混杂storage.estimate、animationend、postMessage、workerrun_js、格式化检测、DevTools 开启即漂退出条件:
铁律:
卡住信号:
必切动作:
cookie/storage/channel/style/time/random主 skill:
$env-patchMCP 优先级:
chrome-devtools-mcp:冻结浏览器基线样本js-reverse:提取可迁移入口、中间态与依赖jshook:在需要更重的 Hook/Stealth/分析时辅助本地迁移判断目标:
进入条件:
退出条件:
铁律:
env-patch 是迁运行时,不是替代 recover。卡住信号:
必切动作:
Phase 3 只看状态与分叉主 skill:
$js-reverse-sign-replayMCP 优先级:
chrome-devtools-mcp:对照真实浏览器结果js-reverse:验证中间态与状态依赖是否闭合jshook:对复杂混淆或高级算法段做补充分析目标:
要做:
normalize -> concat -> hash/encrypt -> encode退出条件:
卡住信号:
必切动作:
Phase 3/4特征:
流程:
特征:
switchJSVMP227/226basearr/opcode/ip/gworker/wasm/runtime 壳Akamai/Kasada/PX/reese84流程:
特征:
腾讯滑块、阿里滑块_rand、fuid、fsanimationend、CSS 动画、样式终态取值run_js、自动化检测、浏览器与本地行为差异流程:
特征:
Akamai、Kasada、PX、reese84、Incapsula同盾、BlackBox、a_bogusabck、sensor_data、bm_sz、TLS/JA4403 或 challenge 持续跳流程:
特征:
protobuf、jspbrid、x-s3-s4e、desc、bx-ppwasm、compileStreaming、imports/exports流程:
特征:
JSVMP/平坦流/worker/wasmrun_js/storage.estimate/animationend 一类浏览器特性通道Akamai/Kasada/PX/reese84/同盾/a_bogus 一类风控分支流程:
额外纪律:
Phase 2 跳到“全量本地还原”Phase 1困难站点统一按这个升级梯子推进,不允许乱跳:
entry -> builder -> writer升级条件:
禁止跨级:
特征:
403流程:
JSVMP/227/226/平坦流/basearr/opcode:先切 Phase 2。wasm/bx-pp/protobuf builder/动态字符串壳:通常先走 Phase 1,再视遮蔽程度切 Phase 2。run_js/storage.estimate/animationend/postMessage/worker:优先做 Phase 3。Akamai/Kasada/PX/reese84/同盾/a_bogus:优先检查 Phase 1 与 Phase 3 的混合阻塞。腾讯滑块/阿里滑块/_rand/fuid/fs:优先按验证码双链与浏览器特性通道处理。chrome-devtools-mcp 负责“真实页面现场”,没有它就没有可靠浏览器基线。js-reverse 负责“逆向工作流证据”,没有它就没有稳定的 Hook/代码/状态记录。jshook 负责“高级逆向与对抗补强”,在重混淆、反调试、Stealth、复杂 Hook 时默认加入。每轮至少维护这些文件:
reverse-records/总览.mdreverse-records/请求链路.mdreverse-records/恢复记录.mdreverse-records/运行时依赖.mdreverse-records/验证记录.mdreverse-records/状态载体卡.mdreverse-records/环境依赖清单.mdreverse-records/升级记录.md没有这些工具时,不要长时间继续深挖。
最少要写清:
复杂网站还原统一流程:
证据门 -> locate -> recover(必要时) -> runtime diff -> env-patch -> sign-replay
其中: