看看 VM 混淆的实际效果
程序的行为与之前完全一致,只是再也没有可读的内容了。
可读的源代码
受 VM 保护的字节码
* 示例代码使用 vm-high-obfuscation 预设并启用高级反 LLM 防御进行混淆
原始逻辑被转换为只有内嵌虚拟机才能执行的自定义字节码。静态分析工具若不先对整个虚拟机进行逆向工程,就无法理解这些代码。
多层次的反 LLM 逆向工程防御
旨在阻断 LLM 攻击混淆代码的绝大多数手段。
* 针对使用 vm-high-obfuscation 预设并启用反 LLM 防御的混淆代码所做的逆向工程。在 JS 运行环境中,运行时内存检查始终是可能的 —— 我们的防御措施提高的是达成它的代价。
背后的机制
两层相互独立的防御 —— 并内置反 LLM 对抗措施 —— 协同工作,让分析与逆向工程变得不切实际
VM 自我防护
VM 运行时在每个阶段都会校验自身完整性 —— 任何修改、Hook 注入或代理拦截都会被检测并使其失效。
代码完整性校验
函数 Hook 检测
代理与拦截陷阱
调用栈校验
破坏 Agent 工作流
VM 调试保护
阻断开发者工具、断点与运行时检查 —— 使单步跟踪或观察 VM 执行过程变得极其困难。
DevTools 检测与响应
断点失效处理
执行时序校验
运行环境指纹识别
诱饵字节码误导
反 LLM 分析防御
基础混淆与 VM 混淆对比
逐项功能对照
| 功能 | 基础 | VM 混淆 |
|---|---|---|
字符串数组加密 | ||
控制流平坦化 | ||
无用代码注入 | 简单 | 高级 |
自我防护 | 简单 | 高级 |
调试保护 | 简单 | 高级 |
字节码虚拟化 | ||
字节码加密 | ||
代码完整性校验 | ||
反 Hook 与防篡改 | ||
反 LLM 防御 |
JavaScript 代码保护的应用场景
从 HTML5 游戏到企业级应用 —— 保护您的 JavaScript 免遭窃取与逆向工程
HTML5 游戏
防止玩家作弊,或竞争对手窃取您的游戏逻辑。VM 混淆让逆向工程变得极其困难。
SaaS 应用
保护专有的前端算法与业务逻辑,防止竞争对手窥探您的客户端代码。
授权软件
用抗篡改的字节码保护许可证校验、付费功能和防盗版机制。
浏览器扩展
让扩展代码远离抄袭者与恶意修改,守护您的知识产权。
