Unity Obfuscator 使用说明

news2024/11/26 20:36:59

一、Assembly - Settings

这个段落描述了在Unity中管理可混淆(obfuscate)程序集及其依赖项的设置。下面是对每个选项的翻译和使用说明:

1. 核心Unity程序集(Assembly-CSharp)

  • Obfuscate Assembly-CSharp: 开启
  • 这是Unity的核心程序集,所有没有存储在程序集定义文件(assembly definition file)中的代码都会被存储在这里。大多数情况下,你会希望开启这个选项以混淆该程序集。

2. 插件程序集(Assembly-CSharp-firstpass)

  • Obfuscate Assembly-CSharp-firstpass: 关闭
  • 这是第二个核心Unity程序集,其中存储了“Plugins”目录中的所有代码文件。大多数情况下,你也会希望混淆这个程序集。

3. 混淆 ‘Assets’ 目录中的程序集定义文件

  • Obfuscate Assembly Definition Files in ‘Assets’: 关闭
  • 开启此选项将搜索“Assets”目录中的所有程序集定义文件,并混淆相应的程序集。

4. 混淆 ‘Packages’ 目录中的程序集定义文件

  • Obfuscate Assembly Definition Files in ‘Packages’: 关闭
  • 开启此选项将搜索“Packages”目录中的程序集定义文件,并混淆相应的程序集。请注意,这里可能也包含Unity核心程序集,因此请小心使用此功能。这是一个测试功能。

5. 混淆外部预编译程序集

  • Obfuscate external assemblies:
  • 在此处输入你想要混淆的外部预编译程序集的名称,例如“MvAssembly.dll”,或输入完整路径,例如“C:/[MyGame]/MyAssembly.dll”。

  • 你可以使用“Add Line”来添加新的程序集路径,也可以使用“Remove Line”来移除现有的路径。

  • 如果你在混淆过程中收到错误信息,比如“Assembly XYZ could not be resolved!”、“Assembly XYZ could not be found!”或类似的错误,可以通过以下方式解决:

  1. 找到该程序集的目录路径。通常,这些程序集可以在你的项目的“Assets”或“Packages”目录中找到。

  2. 如果例如一个名为“GameAnalytics”的程序集未被找到,并且它的位置是“Assets/GameAnalytics/Plugins/GameAnalytics.dll”,那么你可以将相对目录路径“Assets/GameAnalytics/Plugins”添加到下面的列表中。

  3. 如果问题依然存在,尝试添加完整路径,例如“D://[YourProject]/Assets/GameAnalytics/Plugins”。

二、Namespace - Settings

在这里插入图片描述

1. 混淆命名空间(Obfuscate Namespaces)

  • Obfuscate Namespaces: 开启
  • 激活此设置将混淆命名空间。如果可能,混淆器将删除命名空间,从而增加混淆的深度。

2. 跳过特定命名空间

  • Skip following Namespaces:
  • 在此处添加你希望跳过混淆的命名空间。混淆器会根据前缀来决定是否跳过某个命名空间。例如,如果你输入“Unity.StandardAssets”,那么该命名空间中的所有类都将被跳过混淆,且所有以“Unity.StandardAssets”开头的命名空间也会被跳过。
  • **注意:**不要输入空行!否则将会跳过所有命名空间,导致没有任何内容被混淆。

3. 反转命名空间跳过(Vice Versa Namespace Skipping)

  • Vice Versa Namespace Skipping: 关闭/未设置
  • 启用此设置将反转命名空间跳过的逻辑。这样,只有在上面列表中输入的命名空间和类会被混淆,其他的将不会被混淆。

三、Class Obfuscation

在这里插入图片描述在这里插入图片描述

1. 通过访问级别控制混淆(Obfuscation controlled through the accessibility)

  • Obfuscate:
    • Internal: 开启
    • Private: 开启
    • Protected: 开启
    • Public: 开启
  • 这些选项控制不同访问级别的类是否被混淆。例如,Internal、Private、Protected 和 Public 修饰的类都将被混淆。

2. 子类混淆设置(Subclasses)

  • Obfuscate Abstract Classes: 关闭
  • 激活此设置以混淆抽象类。
  • Obfuscate Generic Classes: 关闭

激活此设置以混淆泛型类。

  • Obfuscate Serializable Classes: 关闭

激活此设置以混淆标有 [Serializeable] 特性的类。

如果要混淆可序列化类,必须在“optional”选项卡中激活“Rename Mapping”设置。此选项会保存并加载原始类/方法/字段及其匹配的混淆名称的映射,因为 Unity 会通过名称存储可序列化类。

3. Unity 子类混淆(Unity Subclasses)

  • Obfuscate MonoBehaviour SubClasses: 关闭

激活此设置以混淆 MonoBehaviour 子类。这需要先激活命名空间混淆设置。

  • Obfuscate ‘Not Obfuscatable’ MonoBehaviour SubClasses: 关闭

激活此设置以混淆不能直接混淆的 MonoBehaviour 子类。这通常是因为 Unity 通过反射调用某些类。此情况下使用的技术称为“子类型随机化(subtype
Randomizer)”。类将通过创建大量随机类来混淆。这也需要激活命名空间混淆设置。

  • Obfuscate MonoBehaviour SubClasses in external Assemblies: 关闭

激活此设置以混淆你在程序集设置中指定的外部程序集中的 MonoBehaviour 子类。此设置将以“2018.2 之后”的方式混淆类。

  • Obfuscate ‘Not Obfuscatable’ MonoBehaviour SubClasses in external Assemblies: 关闭

激活此设置以混淆外部程序集中的不能直接混淆的 MonoBehaviour 子类。这种情况通常是因为 Unity 通过反射调用某些类。使用的技术同样是“子类型随机化”,需要激活命名空间混淆设置。

  • Obfuscate MonoBehaviour SubClasses in external Assemblies: 关闭

激活此设置以混淆外部程序集中的 MonoBehaviour 子类,这些程序集是在程序集设置中指定的。如果某些类无法直接混淆(例如,Unity通过反射调用这些类),你可以使用称为“子类型随机化(subtypeRandomizer)”的技术。这将通过创建大量随机类来混淆原始类。此功能需要先激活命名空间混淆设置。

  • Obfuscate ‘Not Obfuscatable’ MonoBehaviour SubClasses in external Assemblies: 关闭

激活此设置以混淆外部程序集中的那些无法直接混淆的 MonoBehaviour 子类。同样,这通常是因为 Unity 通过反射调用这些类。你可以通过“子类型随机化”技术来混淆这些类,此功能也需要命名空间混淆的支持。

4 ScriptableObject 子类混淆

  • Obfuscate ScriptableObject SubClasses: 关闭

激活此设置以混淆 ScriptableObject 子类。这也需要先激活命名空间混淆设置。

5.Playable 子类混淆

  • Obfuscate Playable SubClasses: 关闭

激活此设置以混淆 Playable/PlayableAsset/PlayableBehaviour 子类。此功能同样需要先激活命名空间混淆设置。

四、Method Obfuscation

在这里插入图片描述

激活并管理方法的混淆。如果你想混淆项目中的方法,需要先开启此选项。

1. 基于访问级别的混淆(Accessibility based obfuscation)

  • Obfuscate:
    • Internal: 开启
    • Private: 开启
    • Protected: 开启
    • Public: 开启

这些选项控制不同访问级别的方法是否被混淆。例如,Internal、Private、Protected 和 Public 修饰的方法都将被混淆。

2. 高级设置(Advanced)

  • Obfuscate Unity Methods: 关闭

该选项用于混淆一些简单的 Unity 方法,如 AwakeStartUpdate 等。目前该功能已禁用,正在进行修订。

五、Parameter Obfuscation

在这里插入图片描述

1. 方法参数混淆(Obfuscate Method Parameter)

  • Obfuscate Method Parameter: 关闭

激活此设置以混淆方法的参数和方法的泛型参数。

2. 类参数混淆(Obfuscate Class Parameter)

  • Obfuscate Class Parameter: 关闭

激活此设置以混淆类的泛型参数。

六、Property Obfuscation

在这里插入图片描述

1. 字段混淆(Field Obfuscation)

  • Field Obfuscation: 关闭

激活并管理字段的混淆。如果你想混淆项目中的字段,需要先开启此选项。

2. 基于访问级别的混淆(Accessibility based obfuscation)

  • Obfuscate:
    • Internal: 开启
    • Private: 开启
    • Protected: 开启
    • Public: 开启

这些选项控制不同访问级别的字段是否被混淆。例如,Internal、Private、Protected 和 Public 修饰的字段都将被混淆。

3. 高级设置(Advanced)

  • Obfuscate ‘Serializeable’ Fields: 关闭

激活此设置以混淆标有 [SerializeField] 特性的字段。如果要混淆可序列化字段,必须在“optional”选项卡中激活“RenameMapping”设置。此选项会保存并加载原始类/方法/字段及其匹配的混淆名称的映射,因为 Unity 会通过名称存储可序列化字段。

  • Obfuscate ‘Unity’ Public Fields: 关闭

激活此设置以混淆 MonoBehaviourSerializableNetworkBehaviour 子类中的公共字段。

  • Obfuscate Enum Values: 关闭

激活此设置以混淆枚举的值。

七、Parameter Obfuscation

在这里插入图片描述

1. 属性混淆(Property Obfuscation)

  • Property Obfuscation: 开启

激活并管理属性的混淆。

2. 基于访问级别的混淆(Accessibility based obfuscation)

  • Obfuscate:
    • Internal: 开启
    • Private: 开启
    • Protected: 开启
    • Public: 开启

这些选项控制不同访问级别的属性是否被混淆。

八、Event Obfuscation

在这里插入图片描述

1. 事件混淆(Event Obfuscation)

  • Event Obfuscation: 关闭

激活并管理事件的混淆。

2. 基于访问级别的混淆(Accessibility based obfuscation)

  • Obfuscate:
    • Internal: 开启
    • Private: 开启
    • Protected: 开启
    • Public: 开启

这些选项控制不同访问级别的事件是否被混淆。

九、Logging - Settings

在这里插入图片描述

1. 使用自定义日志文件(Use a custom log file)

  • Use a custom log file: 关闭

激活此设置后,将使用自定义日志文件路径,而不是默认的日志文件路径(Assets/OPS/Obfuscator/Log/[BuildTarget].txt)。

2. 自定义日志文件路径(Custom log file path)

  • Custom log file path:

在此输入混淆过程中使用的自定义日志文件路径。如果选择了自定义日志文件,混淆过程中生成的日志将保存到这个路径。

十、Attribute - Settings

在这里插入图片描述

1. 自定义属性(Custom Attributes)

  • Custom ‘DoNotRename’ Attributes:

这里可以添加自定义属性,这些属性将像混淆器的 DoNotRename 属性一样处理。

2. 添加行(Add Line)/删除行(Remove Line)

  • Add Line/Remove Line:

可以通过这两个按钮添加或删除自定义属性。

十一、Renaming - Settings

在这里插入图片描述

1. 激活的重命名模式(Active renaming pattern)

  • Active renaming pattern: 默认(Default)

你可以选择一个预定义的重命名模式,或者使用自定义模式。需要注意的是,有些字符可能不适用于某些构建目标。例如,构建到 iOS 平台时,会生成基于类文件名的 XCode 项目文件,如果使用了不适合 Mac
平台的字符,可能会导致错误。默认的重命名模式通常是最安全的选择。

2. 自定义重命名模式(Custom renaming pattern)

  • Custom renaming pattern:

如果你选择自定义模式,可以在此输入你想使用的字符集作为重命名模式。不要在字符之间添加分隔符!默认的重命名模式例如是:abcdefghikmnopqrstuvwxyz。你可以随时切换重命名模式,它与重命名映射是独立的。

3. 加载混淆映射文件(Load an obfuscation mapping file)

  • Load an obfuscation mapping file: 关闭

激活此设置可以从文件中加载混淆映射。如果你混淆了可序列化的类、字段等,建议使用此选项。你可以在下方定义文件路径。

4. 加载映射文件路径(Load mapping file path)

  • Load mapping file path:

在此输入你希望加载混淆映射的文件路径。

5. 保存混淆映射文件(Save an obfuscation mapping file)

  • Save an obfuscation mapping file: 关闭

激活此设置可以将混淆映射保存到文件中。如果你混淆了可序列化的类、字段等,建议使用此选项。你可以在下方定义文件路径。

6. 保存映射文件路径(Save mapping file path)

  • Save mapping file path:

在此输入你希望保存混淆映射的文件路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序算法介绍和sort函数应用(明明的随机数,奖学金)

排序算法介绍sort函数应用——[NOIP2006 普及组] 明明的随机数和[NOIP2007 普及组] 奖学金 1.排序算法介绍和常用排序方法复杂度2.sort函数应用2.1.[NOIP2006 普及组] 明明的随机数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示2.1.1.题意解析2.1.2.AC代码 2.2.[NO…

win的netassist TCP测试工具和Linux的nc工具使用

写在前面 有时工作中我们编写一些tcp相关的程序,而netassist就是这样一款辅助我们进行TCP功能测试的工具,你可以从这里下载。 1:netassist使用 我们需要一个server程序,可以参考这篇文章,启动server后,就…

【python】Python如何调用外部命令,subprocess模块的详细解读以及应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

7za解压缩工具

1、unzip无法解压缩大于4G的文件 从Windows平台通过MobaXterm上传一个大小约为5G的zip文件到AutoDL Linux系统上,使用unzip解压过程中出现如下错误: 从网上搜索了一下相关资料,发现是当前的unzip版本不支持4G以上的压缩包。要么升级到最新…

N8 - 使用Word2Vec进行文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 N2 构建词典1. 导入数据2. 设置分词器3. 去除标点和停用词4. 文本迭代器5. 构建词典6. 文本数字化 N3 NLP中的数据集构建1. Dataset2. DataLoader N8 使用…

当代最杰出的思想家姓名学大师颜廷利:当学历与文凭突破了道德底线。。。

在当今社会,文凭和学历被频繁提及,并似乎成为了衡量个人价值的重要尺度。然而,当这些学术凭证超越了道德的底线时,整个社会便开始笼罩在谎言和欺骗的阴影之下。善良与纯真,如同无助的羔羊,在利益的屠刀下黯…

(亲测有效)SpringBoot项目集成腾讯云COS对象存储(1)

目录 一、腾讯云对象存储使用 1、创建Bucket 2、使用web控制台上传和浏览文件 3、创建API秘钥 二、代码对接腾讯云COS(以Java为例) 1、初始化客户端 2、填写配置文件 3、通用能力类 文件上传 测试 一、腾讯云对象存储使用 1、创建Bucket &am…

通义千问报错“撞脸”OpenAI?

笔者团队一个月前为能够使系统可以支持AI Agent的应用,集成了通义千问的模型接口,特别是集成了其可以通过推理调用外部工具的能力。并录制了相关视频如何无代码DIY一个AI Agent,体验还是非常不错的。 今日为客户进行该能力演示时,…

CAN-Linux

1.修改Makefile 然后编译 g -o hello_cpp main.cpp /home/peter/my_tool/controlcan/libcontrolcan.so -lpthread 2.查看 3.测试

2024年化工自动化控制仪表证模拟考试题库及化工自动化控制仪表理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年化工自动化控制仪表证模拟考试题库及化工自动化控制仪表理论考试试题是由安全生产模拟考试一点通提供,化工自动化控制仪表证模拟考试题库是根据化工自动化控制仪表最新版教材,化工自动化…

CSS——弹性盒(flex)

一、弹性盒的简介 1、flex(弹性盒、伸缩盒):是css中的又一种布局手段,他主要用来代替浮动完成页面的布局。 2、flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变。 3、弹性容器:要使用弹性盒&…

离谱测试!小米SU7对撞极氪007,暴露了极氪007一亮点

文 | AUTO芯球 作者 | 谦行 拿小米SU7和极氪007对撞,他娘的真是个人才! 两辆车都是60km/h的速度 , 90%的重叠率 ,这可比面对面撞更惨烈! 结果,两辆车车头都稀烂 好在乘员舱完整,气囊也都弹出&…

基于808协议和1078协议的视频监控系统

卫星定位云服务平台 卫星定位云服务平台是一个车载视频终端监控系统,用于对卫星定位设备进行实时监控、实时定位、轨迹回放、指令下发、拍照记录、报警信息、实时视频、历史视频等功能。808协议和1078协议 内置功能 车队管理:车队信息的增删改查。型号管理&#…

2024年入职/转行网络安全,该如何规划?_网络安全职业规划

前言 前段时间,知名机构麦可思研究院发布了 《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,其中,信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景,想必无需我多言,作为…

互联网私有IP地址列表

最近因为业务需要,要判断用户的IP是否私有IP, 以前知道的私有IP,基本上只有如下几个(注意:这不是正确答案): 10.0.0.0/8(10.0.0.0-10.255.255.255)172.16.0.0/12(172.16.0.0-172.31…

springboot智慧畜牧信息监控系统---附源码39012

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 智慧畜牧信息监控系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.…

碳化硅陶瓷膜过滤器的选购建议

碳化硅陶瓷膜过滤器是一种利用碳化硅陶瓷膜技术进行过滤和分离的设备,其性能和用途广泛。以下是关于碳化硅陶瓷膜过滤器的详细介绍: 一、工作原理 碳化硅陶瓷膜过滤器的工作原理主要包括两个过程: 过滤:通过碳化硅陶瓷膜的微孔结构…

Windows下串口编程与单片机串口设备通信(win32-API)

一、前言 串行通信接口,通常简称为“串口”,是一种数据传输方式,其中信息以连续的比特流形式发送,每个比特在不同的时间点被传输。这与并行通信形成对比,在并行通信中,多个比特同时通过多个线路传输。串口…

运维的利器–监控–zabbix–第二步:建设–部署zabbix agent5.0–客户端是linux系统–实操记录xy

文章目录 部署zabbix agent5.0–客户端是linux系统第一步:安装agent第二🙅‍:更改agent配置文件第三🙅‍:防火墙配置第四🙅‍:启动agent进程第五🙅‍:网页端添加主机失败…

互联网大厂薪资分布:90%的人月薪拿到2w-5w!你拖后腿了吗?

互联网大厂的高薪,早已是众人皆知,但究竟高到何种程度?普通人的薪资水平在大厂中处于什么位置?我们是否也拥有跻身高薪行列的可能? 带着这些疑问,我们不妨来深入探究一下互联网大厂的薪资分布情况。 如果…