面向授权 Web 前端逆向的契约驱动工作流技能:把分诊、抓包、Hook 取证、反混淆、扣代码 / 补环境、纯算法迁移、协议还原、VM/WASM/DRM 深拆等任务沉淀为可执行的协议、工具链。
一、这是什么
web-reverse 是一个 Web 前端逆向工程工作流技能,覆盖从拿到目标站点 / bundle / wasm 到交付可独立复现产物(Node/Python 骨架、纯算法实现、浏览器内可控复用)的全流程。它不是要求一次性加载全部资料的知识库,而是一套按阶段触发、按需读资料的执行框架。
核心特征:
-
任务化:每个完整任务在
artifacts/tasks/<task-id>/下建立独立 task-local,记录目标、证据、尝试、补环境候选与验收结果,支持多轮续跑与上下文交接。 -
阶段化:Observe → Capture → Note → Rebuild → Extract → Verify,每阶段有明确产物与推进门禁,Note(线索落盘)是不可跳过的强制步骤。
-
专题化:34 个 topic 覆盖常见 Web 逆向面(签名/协议、加密库、JSVMP、WASM、Worker、反调试、反篡改、验证码、指纹、DRM 等),按信号自动路由到对应 playbook。
-
可验收:双闸门——算法自检(控制变量逐字节相等)+ 服务端验收(脱机纯算参数被服务器稳定接受);
claimLevel从provisional → route-ready → acceptance-ready → delivered只能靠证据升迁,delivered仅由verify-once.mjs跑通授予。
二、适用场景
触发场景
当用户提到以下内容时,本技能必须触发(即使没有点名):
-
签名 / 签 / sign /
X-Sign/ 加密参数 / 加签 / token 生成 -
协议还原 / 请求参数 / cookie 加密 / 风控字段 / 反爬虫
-
混淆 / OB / 反调试 / 反篡改 / DevTools 检测 /
debugger死循环 -
JSVMP / VMP / WASM / 字节码 / dispatcher / handler
-
Worker / iframe / 多上下文 / ShadowRoot / 验证码 / 滑块 / 点选
-
Webpack / bundle / source map / 扣代码 / 补环境 / 最小闭包
-
Frida / hook / trace / 断点 / 调用栈
-
媒体解密 / DRM / 流媒体 / m3u8 / AES-CTR / appendBuffer
-
SubtleCrypto / WebCrypto / CryptoJS / pkcs1 / 国密
-
指纹 / canvas / audio / WebGL / device fingerprint
-
module federation / 微前端 / websocket / grpc-web / webrtc
-
继续已有的 Web 逆向任务
不处理
-
普通前端开发(UI 组件、页面布局、业务逻辑)
-
普通 Playwright / Puppeteer UI 自动化或冒烟测试
-
通用密码学教学
-
未授权漏洞利用 / 渗透测试
三、两种工作模式
快速分诊
范围窄、只需静态回答、不涉及动态取证或目标修改时,直接做最小抓包 + 关键词搜索 + 证据结论。典型问题:"这个参数是什么加密?""有没有 JSVMP?""打包器是 webpack 还是 vite?"
完整任务
出现以下任一情况时创建 task-local,按阶段协议推进:
-
A~E 中任一交付梯度(请求验收 / 明文边界 / 浏览器内复用 / 本地复现 / 纯算法提取)
-
多轮续跑
-
动态取证(Hook / 断点 / CDP / 抓包)
-
反混淆 / 扣代码 / 补环境 / 纯算法迁移
-
VM / WASM / DRM 深拆(需开
deep-dive permit) -
组合保护、跨上下文、混合运行时
四、核心原则
| 原则 | 含义 |
|---|---|
| Observe before change | 先确定目标、feature bundle、候选 entrypoints 与可证伪假设,再选工具;工具可用 ≠ 路线正确 |
| Artifact before claim | 支撑根因 / patch / 交付的事实先写入state/clues.md 与 run/fixtures.json,再更新状态;口头发现不算证据 |
| Note 是强制步骤 | Capture 与 Rebuild 之间必须把线索- [置信度] 发现内容 {EP-00N} 写进 state/clues.md;带着未落盘线索往下走 = 重复劳动 |
| Hypothesis before hook | Hook 前先写假设("预期看到 X,能区分 A/B");同一疑点尝试上限 3 次,刷 dump 不算推进 |
| Verify before declare | 声明完成前必须过双闸门:算法自检 + 服务端验收;verify-once.mjs 跑通 + acceptanceGap 为空才能说"已交付" |
| Goal-lock and stop-loss | 同工具同策略连续 2 轮无新增 hook/carrier/entrypoint 或无高价值证据 → 先 retrospective 再 pivot,不要硬顶 |
| Browser MCP 锁定 | 用户显式指定或你按反检测优先级选定某浏览器 MCP 后,整条任务只用这一个;换 MCP = 换浏览器实例 = 风控指纹变化 |
五、交付梯度(A~E,先选 1 个主模式)
| 梯度 | 含义 | 验收口径 |
|---|---|---|
| A | 请求验收:字段被服务器接受、挑战链闭环 | 端到端服务端返回成功(如error==0 且业务校验通过),由 verify-once.mjs 复现 |
| B | 内容 / 明文边界恢复:clear boundary、内容层验证 | 可验证明文产出,字段、算法、来源可回指 |
| C | 浏览器内可控复用:Playwright / Puppeteer / DevTools 作 harness | 在受控浏览器内稳定复现目标行为 |
| D | 本地复现 / Port:Node / Python 最小可运行骨架 | 脱离浏览器后骨架独立运行,输出与浏览器逐字节相等(控制变量下) |
| E | 纯算法提取:仅当 A~D 都不足时才升级 | generate(ctx, pinned=None) 实现契约 + 双闸门通过;运行时不依赖原 bundle / wasm / worker / 浏览器 |
主张精度(记录时必须标注):provisional → route-ready → acceptance-ready → delivered;delivered 只能由最终验收授予,部分明文、单条偶发成功、浏览器 PoC 都不能单独升此级。
六、专题覆盖(共 34 个)
按成熟度分组(maturity 表示仓库级 task model、formal validation 与 topic pack 保证级别,不直接等价于真实样本实战回归完备度):
-
synthetic-e2e(21):
anti-debug、behavior-telemetry、binary-codec、challenge-orchestration、compression-stream、dynamic-code、env、fingerprint、framework-runtime、graphql-rpc、instrumentation-hooking、jsvmp、media-drm、module-federation、protocol、signature、streaming-runtime、subtlecrypto、userland-crypto、wasm、worker -
closed-loop(13):
anti-tamper、ast-deobfuscation、beacon-reporting、bundle-loader、cross-context-coordination、frame、grpc-web、microfrontend-runtime、session、source-map、storage、webauthn-passkey、webrtc-datachannel -
guided / reference-only(0):暂无
完整索引见 references/README.md,能力矩阵见 docs/reference/capability-matrix.md,专题选择策略见 docs/reference/topic-selection-policy.md。
七、高频路由示例
| 命中信号 | 读取的 playbook |
|---|---|
| 签名 / 加密参数 / 风控字段 | references/signature-playbook.md + references/protocol-playbook.md |
| CryptoJS / AES / DES / pkcs1 | references/userland-crypto-playbook.md |
| SubtleCrypto / WebCrypto API | references/subtlecrypto-playbook.md |
_0x 变量 / 大数组 / OB 混淆 |
references/deobf.md + references/string-array-deobfuscation-playbook.md |
| 控制流平坦化 / OLLVM-flavored | references/control-flow-flattening-playbook.md |
while(true)+switch / 字节码 / dispatcher |
references/vmp-playbook.md(+ vmp-advanced-playbook.md / vmp-semantic-lifting-playbook.md) |
.wasm / WebAssembly.instantiate |
references/wasm-jsvmp-bridge-playbook.md + references/wasm-binary-analysis-playbook.md |
| Worker / SharedWorker / iframe 多上下文 | references/worker-playbook.md + references/cross-context-coordination-playbook.md |
eval( / new Function( 动态执行 |
references/dynamic-code-playbook.md |
| webpack / bundle / module federation | references/bundle-loader-playbook.md + references/module-federation-playbook.md |
| 扣代码 / 最小闭包 / 补环境 | references/closure-extraction-playbook.md(入口)+ references/composite-triage-playbook.md「Rebuild 路线三岔决策」 |
| debugger 死循环 / DevTools 检测 / 反调试 | references/anti-debug-playbook.md + references/anti-debug-snippets.md |
| self-defending / toString 完整性校验 | references/anti-tamper-playbook.md |
| 滑块 / 点选 / 旋转 / 验证码 | references/captcha-slider-playbook.md + references/challenge-orchestration-playbook.md |
| canvas / audio / WebGL 指纹 | references/fingerprint-playbook.md + references/fingerprint-deep-vectors-playbook.md |
| m3u8 / 媒体解密 / DRM / appendBuffer | references/media-drm-playbook.md + references/video-frame-decryption-playbook.md |
| source map 还原 | references/source-map-playbook.md |
| grpc-web / graphql / websocket / webrtc | 对应grpc-web-playbook.md / graphql-rpc-playbook.md / webrtc-datachannel-playbook.md |
八、文档导航
| 文件 | 角色 |
|---|---|
SKILL.md |
模型运行入口:边界、三条红线、阶段协议、交付梯度、路由表 |
PROMPTS.md |
提示词模板库:可复制模板与拼装片段 |
README.md |
仓库结构、当前版本主轴、维护分层速记 |
docs/guides/getting-started.md |
新任务 / 续跑任务最短使用路径 |
docs/guides/minimal-usage-manual.md |
最小使用手册 |
docs/guides/task-lifecycle.md |
task-local 生命周期 |
docs/reference/reverse-bootstrap.md |
启动协议 |
docs/reference/reverse-workflow.md |
执行循环 / retrospective canonical 定义 |
docs/reference/startup-gate-procedures.md |
启动门禁细则 |
docs/reference/deliverable-ladder.md |
交付梯度 A~E 与升降级规则 |
docs/reference/stop-loss-parameters.md |
停损阈值表 + deep-dive permit 协议 |
docs/reference/capability-matrix.md |
能力矩阵与专题成熟度 |
docs/reference/closeout-checklist.md |
收尾硬校验项与四段叙事真源 |
references/README.md |
完整 topic → playbook 索引 |
references/browser-mcp-capability-map.md |


评论(0)