Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)
来源:互联网 发布:mac安装软件是什么格式 编辑:程序博客网 时间:2024/05/29 10:16
原文 http://blog.csdn.net/huutu/article/details/46573327
因为这几天碰到一个Unity的Bug,不得不去反编译DLL看看C#代码的生成中间件代码。这也用到了一些反编译以及重新编译DLL的一些知识,意味到Unity是如此的不安全。
首先我们新建一个工程,创建一个脚本,写一句很简单的代码:
代码逻辑就是输出一个字符串 "123" ,这次的目的就是修改掉 这个字符串,改成其它的。
好了。先运行一下,让Unity把代码编译成DLL。
很好,输出了代码中的字符串 123 。
然后停掉游戏。我们来修改Unity 生成的DLL。
Unity生成的DLL存储在
打包之后存储在Data/Manager 文件夹。
下面开始反编译&&破解&&重新编译
反编译DLL
在开始菜单找到Visual Studio,然后在子目录找到 开发人员命令提示 ,如下图:
然后切换目录到 Unity 生成的 DLL 文件夹
输入命令:
如下图:
然后输入以下命令来反编译 DLL 为 il 文件:
如下图:
然后在我们的文件夹中可以看到生成的 il 文件和 res 文件
OK,下面开始我们的破解步骤
破解
用文本编辑器打开生成的 il 文件 Assembly-CSharp.il
内容如下:
如果代码很多而生成的这个 il 文件太大,可以直接搜索 类名 然后再到类里面查找 函数名
我们看到 Start() 函数
il 代码还是具有一定可读性,就算不写上注释大家也能把意思猜的一半,这段代码的 大意就是引用一个字符串,然后调用方法去输出。
那么我们的目的就是修改 代码中指定的字符串 123 ,修改为其它的,这里就修改为 "you have been cracked!"。
直接修改 。如下图
重新编译为DLL
保存下上面的修改,然后继续在 控制台中执行以下命令
编译DLL成功,会覆盖掉原来的 DLL。可以通过DLL的修改时间来判断。
再次运行 游戏,查看输出的Log,发现已经被修改了。
更多关于IL 指令的介绍:
- Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)
- Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)
- ildasm、ilasm修改、反编译 已经编译的 dll文件(c#)
- C#中修改Dll文件 (反编译后重新编译)
- Unity3D放破解反编译。DLL加密,mono解密。全程详解。
- 反编译Unity3d 中的dll文件
- 提供一个简单的.DLL文件破解反编译方法!!!
- DLL 反编译
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 使用Reflector.FileDisassembler反编译DLL
- 使用Reflector.FileDisassembler反编译DLL
- Unity与dll不得不说(编译-使用-反编译-混淆)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- Data URI scheme - 数据的uri模式
- RunLoop
- Java系列-集合框架理解
- 如何建设一个营销型网站
- iOS 控制器View加载顺序详细版
- Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)
- ios系统界面带英文解决方法
- adb常用命令
- 4种操作符的区别和联系
- ROS_Kinetic_26 使用rosserial_windows实现windows与ROS master发送与接收消息
- Android学习-创建圆角的DialogActivity
- WebLogic11g-半小时让你的domain集群化
- #好玩东西#聪明的贪吃蛇
- Strust2学习笔记(一)