找到 Project Settings->Obfuz->Encryption VM Settings
在 Assets/Obfuz 目录下创建 symbol-obfuscation.xml 文件,同时 SymbolObfusSettings.RuleFiles中新增一项 Assets/Obfuz/symbol-obfuscation.xml。
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<obfuz>
<assembly name="Assembly-CSharp">
<!-- 不混淆Test1类自身及它的所有成员,包括嵌套类 -->
<type name="SymbolObfus.Test1" obName="0" applyToMembers="*"/>
</assembly>
</obfuz>
在 Assets/Obfuz 目录下创建 const-encrypt.xml 文件,同时 ConstEncryptSettings.RuleFiles 中新增一项 Assets/Obfuz/const-encrypt.xml。
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<obfuz>
<!-- 不加密 [-100, 100]范围内的常量 -->
<whitelist type="int-range">-100,100</whitelist>
<!-- 不加密长度小于等于3的字符串 -->
<whitelist type="string-length-range">,3</whitelist>
<assembly name="Assembly-CSharp">
<!-- 对Test1类所有函数禁用常量加密 -->
<type name="ConstEncrypt.Test1" disableEncrypt="1"/>
<type name="ConstEncrypt.Test2">
<!-- 不加密Sum3函数中的常量 -->
<method name="Sum3" disableEncrypt="1"/>
</type>
</assembly>
</obfuz>
在 Assets/Obfuz 目录下创建 field-encrypt.xml 文件,同时 FieldEncryptSettings.RuleFiles 中新增一项 Assets/Obfuz/field-encrypt.xml。
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<obfuz>
<assembly name="Assembly-CSharp">
<type name="FieldEncrypt.Test1">
<field name="a" encrypt="1"/>
</type>
</assembly>
</obfuz>
在 Assets/Obfuz 目录下创建 call-obfuscation.xml 文件,同时 CallObfusSettings.RuleFiles中新增一项 Assets/Obfuz/call-obfuscation.xml。
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<obfuz>
<whitelist>
<assembly name="mscorlib" obfuscate="0"/>
<assembly name="UnityEngine.*" obfuscate="0"/>
</whitelist>
<assembly name="Assembly-CSharp">
<type name="*CallObfus.Test1" disableObfuscation="1"/>
<type name="*CallObfus.Test2">
<method name="Run1" disableObfuscation="1"/>
</type>
</assembly>
</obfuz>
执行菜单 【Obfuz】->GenerateEncryptionVM 和 【Obfuz】->GenerateSecretKeyFile
生成的密钥文件自动保存在 Assets/Resources/Obfuz 目录下面。
使用ILSpy打开 Library/Obfuz/{buildTarget}/ObfuscatedAssemblies/Assembly-CSharp.dll。