加密混淆的目的是让不怀好意者更难对你的项目进行逆向工程,我们可以使用Obfuscator 插件.

该插件的好处是与Unity构建过程无缝链接,源文件的内容保持不变,而混淆只针对于已编译的程序集。


一、导入及配置

1.插件版本:Obfuscator 3.9.0+

2.在Unity项目工程文件中导入该插件

3.导入完成后,先把工程项目打包Build出来一遍,会适配Obfuscator插件

4.Build完成后,控制台会显示Obfuscation successful,说明适配已经完成了

5.在Editor\Beebyte\Obfuscator文件夹目录中会多出了一个ObfuscatorOptions的配置文件

6.选中ObfuscatorOptions文件,在Inspector中可看到它的配置信息面板


二、详细用法解释


1.Obfuscation Enabled勾选即启用混淆代码插件
2.Obfuscate development builds 勾选即在Unity Development Builds模式中启用


3.混淆所有程序集,由Unity构建过程创建的要模糊化的程序集列表,包含文件扩展名
4.需要混淆的程序集文件名称


需要混淆代码的部分,包括:类名、方法名、参数、字段、属性、事件


5.枚举常量的混淆
6.公开的Mono方法、公开的Mono字段、以及MonoBehaviour类名的混淆,MonoBehaviour类名的混淆目前仅可在PC、Mac、Linux中使用
7.添加Obfuscator版本特性,启用此功能可防止意外地多次混淆相同的DLL。如果你选择通过菜单选项手动混淆dll,特别推荐使用它。


8.设置混淆的细节级别。在弹出窗口中显示的细节级别。Detailed会将项目的混淆时间增加40%左右

9.上面都是一些混淆的属性,包括添加虚假的代码的参数,红圈内两个参数建议填写91和1,混淆的代码会呈现的是“[]”,在视觉上会是看到这种效果:

Add fake code(添加虚假代码):推荐使用,它会复制现有的方法,并以误导人们的方式巧妙地修改副本。虽会增加文件大小和增加混淆构建时间,但不会改变代码流。

10.需要添加跳过混淆的命名空间、类、unity方法

11.其他参数就不一一列举了,可根据英文意思推断出其用法


更深入的用法:(必须懂)

[Skip][SkipRename]的标注
1.在Unity中若有拖拽赋值的点击事件或Animation Clip方法,该方法需要标注[SkipRename]

2.所有的数据类需要注明[Skip]不然调用不到里面的属性

3.插件不会去混淆Plugins文件夹内的代码,若第三方插件失效的话,看看有没有放置到Plugins文件夹内

4.跳过命名空间递归:

当勾选时,所有的AAA的子命名空间也会被跳过

当不勾选时,所有的AAA的子命名空间不会被跳过


三、反编译工具:ILSpy、DotPeek

https://github.com/icsharpcode/ILSpy
https://www.jetbrains.com/decompiler

使用这些工具可对程序进行反编译,查看混淆的效果

如何对自己的Unity项目代码进行加密混淆?相关推荐

  1. Unity项目代码书写规范

    以Google的代码规范为主,稍加改动 https://google.github.io/styleguide/csharp-style.html 书写规范 基础写法 Pascal和驼峰混用,参数用驼 ...

  2. vue项目配置 webpack-obfuscator 进行代码加密混淆

    背景 公司代码提供给第三方使用,为了不完全泄露源码,需要对给出的代码进行加密混淆,前端代码虽然无法做到完全加密混淆,但是通过使用 webpack-obfuscator 通过增加随机废代码段.字符编码转 ...

  3. Unity项目总结(已完成17项,持续更新ing,含商城、塔防、背包、动画、坦克大战等)

    Unity项目总结 写在前面 视频播放(Lua调UnityAPI) AB包使用(异步加载AB包) 编辑器模式运行(Editor编辑器开发) Phong光照模型(顶点片元Shader.表面体Shader ...

  4. unity 项目实践经验 和 架构体系

    GameRes游资网授权发布 文 / 吴秦(Tyler) 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: ...

  5. unity开始游戏代码_Unity的代码之夏开始

    unity开始游戏代码 Two weeks ago we announced our Unity Summer of Code program through which we offer indie ...

  6. unity 项目开发——浅谈设计模式的六大原则(一)

    目录 前言 首先,六大原则是谁? 其次,为什么需要学习这六大原则? 正文 一.单一职责原则 示例: 因此我们需要进行拆分,根据具体的职能可将其具体拆分如下: Unity 单一职责原则 二.开闭原则 U ...

  7. [团队] 在Unity项目中使用FMOD来管理你的音效

    Hello各位小伙伴, 今天来聊一下Unity项目中的音效管理. 我目前正在研发的项目, 使用了FMOD的来管理音效和背景音乐. FMOD本身是一款免费的音频集成工具. 自身的音效编辑器还拥有强大的编 ...

  8. 笔记23 Unity项目:超级玛丽

    笔记23 Unity项目:超级玛丽 拖放地图,裁剪精灵,形成跑步动画,精灵渲染器 摄像机跟随+代码CameraControl 玛里奥动画 给马里奥.地面等添加碰撞器.刚体(注意是2D的!) 添加音乐播 ...

  9. 【Unity项目优化宝典】Unity3d打包后移动端启动黑屏时间太久

    欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群,行业纵横颇多,每个人精通领域各异,旨在交流, .公司性质使然,经手很多小项目.在美术资源少,代码框架简单的情况下一般不会考虑到 ...

最新文章

  1. Akka的Actor编程
  2. 智能产品AI服务智商的权重研究|未来研究
  3. C语言再学习 -- 输入/输出
  4. Way to configure the logon navigaion layouts via Business Roles in CRM
  5. 一步步学习微软InfoPath2010和SP2010--第十二章节--管理和监控InfoPath Form Services(IPFS)(4)--监控含图片控件的Products表单...
  6. 话里话外:从纯技术顾问到业务咨询顾问的能力发展路径(上)
  7. 大数据要如何提高 才能满足智慧城市需求?
  8. 蓝牙音乐之AVRCP
  9. 开学倒计时,实验室里的这些准备工作你做完了吗?-LIMS2
  10. Cesium加载面状geojson数据,并拉伸一定的高度。
  11. 基于JAVA学术会议信息网站计算机毕业设计源码+系统+数据库+lw文档+部署
  12. python3版本升级和系统更新_如何更新mac系统自带的python版本到最新3.3
  13. 金山中学 rugular SRM 04 ——纪念我的第一次Ak
  14. 架构探险-轻量级微服务架构_第3部分-单活动架构+一些时髦的Dagger
  15. 大型API网关(六)—— 监控和预警
  16. bm22 bm23 bm1
  17. git add .添加文件时报错 error: ‘fileName/‘ does not have a commit checked out 解决方法
  18. 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告
  19. 电力电子技术- >电力电子器件
  20. 病毒及攻击防御手册之四

热门文章

  1. 命令行把java项目打成jar包
  2. 毕业设计答辩常见问题汇总
  3. display:inline-bock的注意
  4. 典型计算机电路组成,硬件工程师必会的几道题
  5. zz麦考林(M18.com)多渠道狂奔
  6. 数学之美读书笔记第一章
  7. java getmethod 无参数_Java getMethod类型参数
  8. 节假日api接口之获取指定日期的节假日信息
  9. java基础知识之一:命名规则(包名、类名、变量名、方法名)
  10. PTA单链表 - 20. 单值化(去重)