码迷,mamicode.com
首页 > 编程语言 > 详细

Mono加密DLL也没用,借助IDA dump内存 直接提取解密后的DLL,反编译破解Unity游戏

时间:2016-07-14 07:14:03      阅读:497      评论:0      收藏:0      [点我收藏+]

标签:

之前有介绍过通过重新编译Mono 来加密DLL的方式,来避免Unity 游戏被反编译修改破解,然而这种方式只能防住一些小白玩家,稍微有技术的玩家分分钟就破解了,下面也介绍下一个Unity游戏是如何被破解的。


首先,对于没有重编Mono 进行加密的,直接找到DLL,反编译修改代码就搞定,详细请参照我之前写的文章

Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL)

然后对于重编Mono进行加密过的,可以借助IDA来破解,如下:

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

1、首先去下载个IDA。

我这里以Win系统的游戏为例。

加密过的DLL拖到 .net reflector 中是无法反编译的

技术分享


下面开始借助IDA进行破解

打开IDA,载入游戏

技术分享


选择EXE文件载入

技术分享


然后点击OK,开始载入游戏

技术分享


转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

稍等几分钟之后,IDA就对游戏反编译完成了,会自动断点到 Main 函数。

技术分享


用 F9 往下走,会弹出 Exception ,不用管,点确定 。

技术分享

这时候在 Modules 中就出现了 Mono.dll ,我们的目标就是在 Mono.dll 中获取解密后的DLL的数据。


技术分享


双击 mono.dll ,就会列出 mono.dll 中的函数,ctrl+f 搜索 image

技术分享

找到之前文章提到过的加密函数 mono_image_open_from_data_with_name

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

选中函数,按 F5进行反编译这个函数

技术分享

左边是反编译出来的代码。


用反编译出来的代码与Mono源代码进行对比,找到最终传递解密数据的代码,找到DLL数据以及DLL数据长度的变量V10 V11.

技术分享


在左边双击 v10 进入v10 的定义,得到 var_8

技术分享


同样,得到v11 == arg_4转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

技术分享


回到函数列表,右键 mono_image_open_from_data_with_name 函数,添加断点

技术分享


添加断点后,坐标会有红色标记

技术分享


好,一直F9往下走,中间会有各种 Exception,全部Yes ,一直往下走,直到走到了设置的断点处。

技术分享


到了断点处之后,在左边往下翻,找到arg_4 和 var_8 连续出现的代码段落。

技术分享


F2下断点,然后F9 运行到断点处。转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn


技术分享


寄存器 ECX 中存储了 DLL数据长度值!!!


然后 继续往下走。

EAX中存储了 DLL数据地址!!!!!


Shift+F2 调出脚本编辑器,输入脚本

auto fp, dexAddress;
fp = fopen("C:\\ass1.dll", "wb");
for ( dexAddress=0x0AF60020;dexAddress < 0x0AF60020+0x0027B400;dexAddress++ )
fputc(Byte(dexAddress), fp); 

点击Run 执行脚本,Dump出DLL的数据

技术分享



这样就导出了解密后的DLL,剩下的就是反编译DLL为IL代码、修改IL代码、重新编译IL为DLL、重新打包APK等步骤了。


Mono加密DLL也没用,借助IDA dump内存 直接提取解密后的DLL,反编译破解Unity游戏

标签:

原文地址:http://blog.csdn.net/huutu/article/details/51902940

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!