通过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
通过ida dump Uinity3D的加密dll的更多相关文章
- Unity防破解 —— 加密Dll与Key保护
在阅读这篇文章之前,我在处理mono加密问题时,也是参考了雨凇的文章,所以建议先看一下雨凇写的关于加密Dll的文章: 1.Unity3D研究院之Android加密DLL与破解DLL .SO 2 ...
- LoadLibrary(C:\soft\IDA 7.0\IDA 7.0\plugins\python64.dll) error: 找不到指定的模块。 C:\soft\IDA 7.0\IDA 7.0\plugins\python64.dll: can't load file LoadLibrary(C:\soft\IDA 7.0\IDA 7.0\plugins\python64.dll) erro
LoadLibrary(C:\soft\IDA 7.0\IDA 7.0\plugins\python64.dll) error: 找不到指定的模块. C:\soft\IDA 7.0\IDA 7.0\p ...
- Unity Android加密DLL笔记
unity mono 地址:https://github.com/Unity-Technologies/mono 下载与unity版本对应的unity mono. brew安装:http://brew ...
- 使用Dotfuscator保护.NET DLL加密DLL,防止DLL反编译
1.下载地址 https://pan.baidu.com/s/1ztWlBxw1Qf462AE7hQJQRg 2.操作步骤 2.1安装后打开DotfuscatorPro软件,如下图所示: 2.2 选择 ...
- ida dump内存脚本
auto i,fp; fp = fopen("d:\\dump.dex","wb"); for(i=r0;i<r0+0x20;i++) fputc(Byt ...
- dump、libeay32.dll、gsoap、webserver多线程调用gsoap产生崩溃
问题:调用webserver接口出现dump文件,dump文件指向libeay32.dll有问题,产生崩溃的原因是gsoap多线程问题,多线程调用时需要程序启动的地方调用如下函数进行多线程初始化: i ...
- 转:使用IDA动态调试WanaCrypt0r中的tasksche.exe
逆向分析——使用IDA动态调试WanaCrypt0r中的tasksche.exe 转:http://www.4hou.com/technology/4832.html 2017年5月19日发布 导语: ...
- Unity Mono脚本 加密
加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...
- DLL编程学习
原文出处:http://www.blogjava.net/wxb_nudt/archive/2007/09/11/144371.html DLL编写教程 半年不能上网,最近网络终于通了,终于可以更新博 ...
随机推荐
- python—退出ipython3的help()
退出ipython3的help() 组合键:ctrl+z
- Linux 150命令之 文件和目录操作命令 chattr lsattr find
chattr添加隐藏权限 lsattr查看隐藏权限 参数 a文件内容不能删除,只能追加 >> [root@mysql tmp]# chattr +a 1.txt [root@mysql t ...
- javascript中的取反再取反~~
操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数. <html> <script> var myArray = new Arr ...
- Transparent Flow Migration for NFV
Transparent Flow Migration for NFV 摘要 因为SDN提供的灵活性,NF之间存在着流量的迁入和迁出问题.而且NF也要根据相关的状态信息处理数据包,所以流量迁移必须满足以 ...
- Alpha-7
前言 失心疯病源7 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 今天完成了那些任务 18:30~20:30 通过统计法来得出人车团块的区别和鉴别方法,然而效果并不显著 代码签 ...
- lintcode-407-加一
407-加一 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组. 该数字按照大小进行排列,最大的数在列表的最前面. 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4 ...
- NULL指针引起的一个linux内核漏洞
NULL指针一般都是应用于有效性检测的,其实这里面有一个约定俗成的规则,就是说无效指针并不一定是 NULL,只是为了简单起见,规则约定只要指针无效了就将之设置为NULL,结果就是NULL这个指针被用来 ...
- 第六周PSP &进度条
团队项目PSP 一.表格: C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论alpha完成情况并总结 9:40 11:20 17 ...
- week1读构建之法-读书笔记
最开始听见杨老师说邹欣老师这个名字总觉得很熟悉,后来看见博客上老师的头像恍然大悟,原来机缘巧合已经在微博上关注邹老师许久,一直觉得邹老师是个很有意思的人,兴趣一定十分广泛,看了老师的书确实能感觉到邹老 ...
- PAT 甲级 1083 List Grades
https://pintia.cn/problem-sets/994805342720868352/problems/994805383929905152 Given a list of N stud ...