通过ida dump Uinity3D的加密dll
声明:
1.本文转载自:http://www.52pojie.cn/thread-398266-1-1.html,仅供自己保存使用,高手勿喷
2.欢迎学习交流
通过ida dump Uinity3D的加密dll
看了一篇文章:http://www.jianshu.com/p/5bba57045b09
通过hook解密Uinity3D的加密dll,最近刚接触动态,于是就尝试了下能不能通过IDA,像脱壳一样,dump出解密的dll文件,试了下,果然可以,在这里分享下
工具:ida6.6 小米2s 青龙*月刀(随便找的一款游戏)
解压app lib文件夹下的libmono.so ,拖入ida
主要还是在这个几个函数上下断点(可以参考mono的源码)
mono_image_open_from_data_full
mono_image_open_from_data
mono_image_open_from_data_with_name
解密个过程可能在这几个函数的左右
查看前面函数最终调用的还是mono_image_open_from_data_with_name,
动态调试:如果app有反调试,还需要跳过饭调试,下面简单介绍动态调试的准备工作(网上有很多动态调试教程)
推送android_server到手机
1:adb push android_server /data/local/tmp/
2.:adb shell
3.cd /data/data/tmp/
4.chmod 777 android_server
5../android_server
端口转发:adb forward tcp:23946 tcp:23946
debug启动app
adb shell am start -D -n com.huiguan.qinglong.taiqi.dl/com.huiguan.qlyyd.UnityPlayerNativeActivity
查看此app PID
adb shell
ps |grep dl
记录下PID并转发下
adb forward tcp:8700 jdwp:PID
设置ida 并打开attach 上进程,
运行app
这个时候在cmd窗口上运行jdb调试:jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
这个时候可以调试了
运行app会断在linker上
接着如果app没有反调戏:直接f9运行
出现下面这个窗口:点same
稍等片刻,还会端在linker上,直接f9运行
如果出现这个窗口,全部选择yes(pass to app)不用等待了
后面可能会出现很多这个窗口全部选择yes 然后f9运行
最终断在mono_image_open_from_data_with_name,方法上
首次加载并非我们想要的dll直接跳过,
下图断点关键函数上
如果看不懂可以 f5 看下源码,这里直接f5 源码演示,他这里重写了momo的源码
int __fastcall mono_image_open_from_data_with_name(int a1, char *haystack, int a3, int a4, char a5, char *haystacka)
几个关键性参数
//nt a1 读取dll文件偏移地址
// char *haystack ,dll文件的大小
// char *haystacka ,文件名称
这个时候跟随R1寄存器看到加密的dll文件的地址,说明dll还没开始解密,解密可能会在后面。单步向下走并注意各个寄存器的变化,经过一个简单的循环
将dll解密了这个时候dll就在内存中解密了,
这个时候已经可以dump了,
查看寄存器窗口:找到R6和R11
整个文件偏移的开始R6=7B95304C
偏移地址的结束R6+R11=7B95304C+3AF200=7BD0224C
使用;dump dex的脚本
auto fp, dexAddress;
fp = fopen(“D:\\test.dll”, “wb”);
for ( dexAddress=0x7B95304C; dexAddress < 0x7BD0224C; dexAddress++ )
fputc(Byte(dexAddress), fp);
run下就ok了
附上:原dll和解密dll
http://pan.baidu.com/s/1c4P6Q
转载于:https://www.cnblogs.com/JianXu/p/5158414.html
通过ida dump Uinity3D的加密dll相关推荐
- Unity防破解 —— 加密Dll与Key保护
在阅读这篇文章之前,我在处理mono加密问题时,也是参考了雨凇的文章,所以建议先看一下雨凇写的关于加密Dll的文章: 1.Unity3D研究院之Android加密DLL与破解DLL .SO 2.Uni ...
- Unity3D之Android加密DLL与破解DLL
转自:http://blog.csdn.net/yupu56/article/details/53216705 1.加密方案 Unity 3D项目游戏逻辑采用C#脚本,我们知道C#编译生成的DLL或E ...
- 【Unity】防反编译之windows平台加密dll
功能取决于需求,在实现这功能之前,却有一个小小的插曲,有同学认为,并不需要去实现游戏加密,再怎样也会被破解,何必浪费精力.虽然这样说,但是我们所做的加密至少也会增加一点破解成本,不会让我们辛苦写的代码 ...
- 用.Net Reactor5打包加密dll文件和exe程序
软件功能: 1.可将dll文件进行加密,防止反编译. 2.可将整个debug目录下exe和引用的dll文件都整合加密到一个exe文件中 .Net Reactor破解版下载地址:https://down ...
- 用XenoCode 2006 加密dll(.NET
一直使用 XenoCode 2005 Enterprise 版来混淆保护我的 .net 程序,虽说不能做到真正意义上的安全(呵呵,我就破解了几个用XenoCode加密的软件,纯粹好玩--),但比起其他 ...
- unity防反编译 windows平台加密dll
原文链接:http://gad.qq.com/college/articledetail/7194480 本文首发腾讯GAD开发者平台,未经允许,不得转载 功能取决于需求,在实现这功能之前,却有一个小 ...
- 简单Unity 3D游戏加密dll文件提取
大多数游戏都是使用Unity 3D做的,我们逆向分析主要分析\assets\bin\Data\Managed中的Assembly-CSharp.dll文件,当我们用.NET Reflector 或者d ...
- php加密 dll扩展,PHP的openssl加密扩展使用小结(推荐)
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已 ...
- 【手游】有杀气童话 美术资源加密分析
加密原理参考我之前写的 Unity3D 游戏加密解密那些事 0x00 在ida中先找到加密dll的地方 把libmono.so文件拖入IDA中,在函数窗口中搜索mono_image_open_from ...
- 【手游】魔灵幻想 美术资源加密分析
这个游戏是用Unity3D引擎开发的,加密方式是先对AssetBundle加密,然后在libmono.so中对Assembly-CSharp.dll进行加密 0x00 在ida中先找到加密dll的地方 ...
最新文章
- 【Docker】容器的几种网络模式
- Oracle二三事之 12c 可插拔数据库PDB
- Trie树统计单词前缀
- shell脚本编写汇集
- LoadRunner变量到参数的互换
- go语言如何连接数据库
- SQL相关子查询与非相关子查询
- CubeMX配置串口的程序烧入板子不跑的解决方法
- Python基本语法
- AfterEffect滤镜插件总目录
- 终于找到了,中国知网免费下载论文诀窍!
- F12下载网页视频(开放网页)
- 【FXCG】多头陷阱知多少
- delphi BMP与jpg互转
- 计算平均指令时间_上海原油期货将推出TAS指令
- python练习题17
- MeteoEarth全球天气
- 今天吃什么转盘小程序开发制作功能介绍
- 本地滑块识别DLL/本地通用验证码识别DLL/文字点选/图标点选/本地识别DLL
- GuLi商城-在线打开pdm文件