File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -31,11 +31,20 @@ Obfuz使用一个确定性的随机算法,根据一个初始的随机种子,
3131
3232- ` EncryptionVMSettings.CodeGenerationSecretKey ` 中配置这个初始的随机化种子。
3333- ` EncryptionVMSettings.EncryptionOpCodeCount ` 中配置了加密指令集的指令个数。
34- - ` EncryptionVMSettings.CodeOutputPath ` 中配置了生成的` GeneratedEncryptionVirtualMachine ` 类的输出代码文件路径。
3534
3635EncrytpionOpCodeCount必须为2的幂(如64、128、256、1024),默认值为256。最小值为64,最大值虽然没有限制,但不建议超出1024,因为会导致生成的` GeneratedEncryptionVirutalMachine ` 类的代码过大。
3736
37+ 生成算法会随机出每条指令使用的加密指令原语以及该加密原语的随机化参数。
38+
39+ ## 生成 EncryptionVM代码
40+
41+ 运行菜单` Obfuz/GenerateEncryptionVM ` 生成加密虚拟机代码,在` EncryptionVMSettings.CodeOutputPath ` 中配置` GeneratedEncryptionVirtualMachine ` 类的输出代码文件路径。
42+ 默认生成的代码文件为` Assets/Obfuz/GeneratedEncryptionVirtualMachine.cs ` 。
43+
3844一般来说,GeneratedEncryptionVirutalMachine需要放到AOT程序集中。这样既提高了加密性能,同时也利用il2cpp会将代码编译为机器指令的特点,增加破解难度。
3945
4046如果没有任何AOT混淆程序集,GeneratedEncryptionVirutalMachine也可以放到热更新程序集中,这样可以实现最大程度的灵活性,每次发布热更新代码时加密虚拟机都不一样。不过放到热更新代码中
4147不仅会导致加密性能较差,还容易被逆向,因此不推荐这么做。
48+
49+ 建议每次发布新主包时修改` CodeGenerationSecretKey ` ,生成全新的EncryptionVM,以增大破解难度。如果使用了代码热更新技术且` GeneratedEncryptionVirutalMachine ` 在AOT程序集中,
50+ 那么在发布热更新代码时不要修改` CodeGenerationSecretKey ` ,否则会导致被混淆的热更新程序集执行解密代码出错!
You can’t perform that action at this time.
0 commit comments