Unity 3D Android对dll加密和重编译mono源码进行解密

本文介绍了如何防止Unity 3D的dll代码被反编译,通过加密dll并在CentOS 6.6上修改并重新编译mono源码,以实现对加密dll的解密。详细步骤包括dll加密、CentOS环境搭建、mono源码下载与编译、添加解密算法等,最终成功运行加密项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      为防止Unity 3D的dll代码被反编译,可对其进行加密,然后在libmono.so中添加解密代码,对mono源码重新编译打包出libmono.so替换项目中的so之后,项目便可正常运行。

       但实际操作过程中,mono源码编译十分容易出错(步步掉坑啊 T_T~~~),几经周转,终于在CentOS6.6(32位)系统下搞定了。记录详细步骤如下:


1、对dll加密:

(1)先将Unity中项目代码导出为Android工程,找到要加密的dll,位于\assets\bin\Data\Managed\Assembly-CSharp.dll。

(2)用VS建立控制台应用程序,将要加密的dll放置于工程目录中,并进行加密(比如下图代码将dll转换成字节流并将字节偏移1位)。



加密后的dll用反编译工具打开会报错。至此加密已经搞定,接下来重头戏就是修改mono源码并重编译了~



2、在CentOS 6.6中修改mono源码并重编译

这是一个漫长的征途,咱们从头一步一步来:

(1)安装CentOS虚拟机

此处建议安装CentOS 6.6 32位虚拟机,之前试过Ubuntu的32位跟64位,始终没能成功编译。CentOS虚拟机种子下载地址:

http://pan.baidu.com/s/1qWmTbx6


(2)下载安装Xshell(该步骤可省略)

“工欲善其事必先利其器”,因为Xshell操作起来比较方便,所以此处有安装Xshell跟Xftp,心急的童鞋可以略过。

Xshell和Xftp下载地址:

http://pan.baidu.com/s/1jGKpmCI

如果打算也用Xshell操作的话,记得将Backspace按键重新设置一下,因为默认该按键不是退格删除,用起来很心塞。设置方法:点击“文件”-“属性”,在打开的窗口中选择“键盘”,然后在右侧的BACKSPACE键序列中勾选“ASCII 127”即可。参见下图:

Xshell安装完新建连接,输入CentOS的IP地址进行连接,成功连接后就可以直接在Xshell窗口中操作虚拟机了。



<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值