🔄 DSL 自定义虚拟机逆向(DSL VM Reverse Engineering)
ACTION REQUIRED(读完后立刻执行)
NOW: 确认当前任务是自定义 JS opcode VM / 风控引擎,不是标准 WASM 或普通 webpackNOW:case-init直到scope.md就绪;离线样本用offline/labACT: 从「3. 通用逆向工作流」Phase 1 做文件分类,不要停在目录
用于逆向基于 JavaScript 实现的自定义 WASM 虚拟机/风控引擎
目录
1. 适用范围
当目标文件符合以下 任意特征 时使用本 skill:
排除规则
2. DSL VM 识别特征
代码特征
Opcode 编码格式
每条指令编码为 32 位整数:
3. 通用逆向工作流
Phase 1: 文件分类(5 分钟)
Phase 2: 变量映射表提取(10 分钟)
Phase 3: Opcode 提取与分类(15 分钟)
Phase 4: 常量表分析(30 分钟)
Phase 5: 导出函数追踪(1-2 小时)
导出函数(如 getToken)通过以下路径定位:
Phase 6: 运行时注入(若纯静态分析不够)
4. Opcode 提取与分类
参考 opcode 对照表(基于已有案例)
5. 运行时捕获方案
方案 A: Selenium + CDP 原生事件(推荐,成功率最高)
方案 B: Playwright 无头浏览器
方案 C: 纯协议验证(成功率极低)
DSL VM 生成的 token 通常与浏览器上下文强绑定(TLS JA3 指纹、IP、Cookie、请求头等),脱离浏览器后服务端可检测到上下文不匹配。不建议使用纯协议方案。
6. 常见状态码
7. Skill 自检清单
- 我是否完成了 DSL VM 识别(IIFE + 单字母变量 + DG() 解释器)?
- 我是否提取了变量映射表(
var X=数字)? - 我是否提取了 opcode 列表并分类?
- 我是否分析了常量表 C[9] 的引用范围?
- 我是否定位了导出函数注册点?
- 纯静态分析不够时,我是否尝试了运行时注入方案?
- 任务完成后是否回写了 field-journal?
- 是否发现新工具/新场景 → 更新 routing.md?


