JSVMP 反编译
2026-04-01
将 VMP 中的字节码,重新构建成 AST ,实现对 JSVMP 代码进行还原
参考内容 BV1bFXPBWEgz
预处理
- 基础准备: 使用 AST 去除 OB 混淆,编码混淆等基础混淆内容
- 常量池还原: 代码中读取的常量数组内的常量转换成 AST 节点
- 定位虚拟机与关键参数: 明确 索引(PC),堆栈 等变量
- 保持整体架构不变,仅指令解析时需要手动处理(
switch外的整体内容保持不变,指令中保护的代码才是关键的代码)
分支还原
不同分支在虚拟机中的表现不同,根据具体情况而定。此处结合行号查看
if// 其他语句 if (test) { pc = } else { pc = } // 其他语句