鸟语天空
Obfuz自定义混淆规则
post by:追风剑情 2026-1-30 13:50

一、修改EncryptionVM相关设置

找到 Project Settings->Obfuz->Encryption VM Settings

2.png

二、修改Secret相关设置

3.png

三、修改符号混淆相关设置

Assets/Obfuz 目录下创建 symbol-obfuscation.xml 文件,同时 SymbolObfusSettings.RuleFiles中新增一项 Assets/Obfuz/symbol-obfuscation.xml

4.png

文件内容如下:

<?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

5.png

文件内容如下:

<?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

6.png

文件内容如下:

<?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

7.png

文件内容如下:

<?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

8.png

生成的密钥文件自动保存在 Assets/Resources/Obfuz 目录下面。

9.png

八、查看混淆后Assembly-CSharp代码

使用ILSpy打开 Library/Obfuz/{buildTarget}/ObfuscatedAssemblies/Assembly-CSharp.dll

10.png

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容