文档
/

选择预设

选择预设

预设是初始配置。选择预设后,请检查所选混淆器版本实际生效的选项。

观看

Which Obfuscator.io Preset Should I Use? VM Low vs Default vs High

在 YouTube 观看

在 8.0.0 及更高版本中,建议以 VM Default 作为生产配置的起点。VM Low 关闭了 VM Self Defending 和 VM Debug Protection,适合初步评估。其他 VM 预设会启用这两项防御。在 Free 套餐中,控制台只提供 VM Low;其他 VM 预设及其 VM 选项需要付费套餐。

VM(8.0.0 及更高版本)

optionsPreset主要变化
vm-low-obfuscationVM Low 使用较少的 VM 防御,并且不启用 stringArray 和 vmBytecodeArrayEncoding。请用它来评估 VM 混淆,而不要把它作为测试构建的基础。
vm-defaultVM Default 结合 VM 保护、String Array 保护和高级防护,适合作为生产配置的起点。
vm-high-obfuscationVM High 增加 Stateful Opcodes、Stack Encoding 和 Compact Dispatcher。请在自己的代码上测量成本。
vm-ultra-high-obfuscationVM Ultra High 保留 Stateful Opcodes 和 Stack Encoding,但不包含 Compact Dispatcher,并增加 Control Flow Flattening 及额外的基础变换。这会显著降低运行时性能。

在 8.0.0 及更高版本中,vm-anti-llm(VM Anti-LLM)和 vm-medium-obfuscation(VM Medium)生成的选项与 vm-default 相同,不再作为控制台中的独立选项。旧版本可能仍单独显示它们。

基础混淆

optionsPresetselfDefendingdebugProtectiondisableConsoleOutput
defaultfalsefalsefalse
low-obfuscationtruefalsetrue
medium-obfuscationtruefalsetrue
high-obfuscationtruetruetrue

更重的预设可能增加输出体积和执行时间。请测量自己代码的启动时间、热点路径及压缩后的包大小,而不要依赖固定的性能下降倍数。 要保护选定的函数,请参阅针对特定函数。

通过 API 构建时,请从预设端点获取与您的混淆器版本对应的内置预设选项,并将其作为 options 发送(参见 API 参考)。

自定义预设

内置预设只是起点。只要您在某个内置预设的基础上做了调整,就把结果保存下来,而不是下次再重新配置:在选项面板顶部的预设库中选择新建预设。预设会把此刻的每个选项连同您起的名称和可选描述一起保存;它不保存混淆器版本,因此构建时所选的版本才会生效。您保存的预设列在自定义下。自定义预设在 Pro 及以上套餐中可用,每个账号最多 20 个。

点击预设卡片,即可将其应用到选项面板。一旦您更改了某个选项,已应用的预设就会被标记为已编辑:撤销更改会恢复它的选项;对于您自己的预设,更新预设会把更改保存到该预设中。在其他预设覆盖未保存的更改之前,系统会先请您确认。编辑、复制和删除都在预设的菜单里。常见的做法是准备一个生产预设,再准备它的一个测试变体,加入测试与 CI中的覆盖项,这样两个构建运行的是相同的转换。

保存对话框中还有两个字段,可以让预设走出您自己的控制台:

  • 共享给我的团队会把它发布给您的团队,并且它还可以成为团队默认预设。只有团队所有者才能看到这个开关。参见共享预设。
  • API 别名让构建可以按名称使用该预设:在 javascript-obfuscator 包(5.8.0+)中,把 optionsPreset 设为别名后,构建时会获取该预设的选项,因此配置保存在控制台中,那里的改动无需提交就能进入下一次构建。直接调用 API 时,需在单独的请求中从预设端点获取选项(参见 API 参考)。参见使用 NPM 包。