声明:

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的更多相关文章

  1. Unity防破解 —— 加密Dll与Key保护

        在阅读这篇文章之前,我在处理mono加密问题时,也是参考了雨凇的文章,所以建议先看一下雨凇写的关于加密Dll的文章: 1.Unity3D研究院之Android加密DLL与破解DLL .SO 2 ...

  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 ...

  3. Unity Android加密DLL笔记

    unity mono 地址:https://github.com/Unity-Technologies/mono 下载与unity版本对应的unity mono. brew安装:http://brew ...

  4. 使用Dotfuscator保护.NET DLL加密DLL,防止DLL反编译

    1.下载地址 https://pan.baidu.com/s/1ztWlBxw1Qf462AE7hQJQRg 2.操作步骤 2.1安装后打开DotfuscatorPro软件,如下图所示: 2.2 选择 ...

  5. ida dump内存脚本

    auto i,fp; fp = fopen("d:\\dump.dex","wb"); for(i=r0;i<r0+0x20;i++) fputc(Byt ...

  6. dump、libeay32.dll、gsoap、webserver多线程调用gsoap产生崩溃

    问题:调用webserver接口出现dump文件,dump文件指向libeay32.dll有问题,产生崩溃的原因是gsoap多线程问题,多线程调用时需要程序启动的地方调用如下函数进行多线程初始化: i ...

  7. 转:使用IDA动态调试WanaCrypt0r中的tasksche.exe

    逆向分析——使用IDA动态调试WanaCrypt0r中的tasksche.exe 转:http://www.4hou.com/technology/4832.html 2017年5月19日发布 导语: ...

  8. Unity Mono脚本 加密

    加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...

  9. DLL编程学习

    原文出处:http://www.blogjava.net/wxb_nudt/archive/2007/09/11/144371.html DLL编写教程 半年不能上网,最近网络终于通了,终于可以更新博 ...

随机推荐

  1. Redis 总结精讲 看一篇成高手系统4

    本文围绕以下几点进行阐述 1.为什么使用redis2.使用redis有什么缺点3.单线程的redis为什么这么快4.redis的数据类型,以及每种数据类型的使用场景5.redis的过期策略以及内存淘汰 ...

  2. Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter]

    <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" cl ...

  3. [T-ARA][Lovey-Dovey]

    歌词来源:http://music.163.com/#/song?id=22704426 作曲 : 新沙洞老虎/崔圭成 [作曲 : 新沙洞老虎/崔圭成] [作曲 : 新沙洞老虎/崔圭成] 作词 : 新 ...

  4. excel导出功能原型

    本篇博客是记录自己实现的excel导出功能原型,下面我将简单介绍本原型: 这是我自制的窗体,有一个ListView和一个Button(导出)控件. 这是我在网上找到了使用exel需要引用的库. usi ...

  5. dtd文件本地配置

    在struts包解压出来以后的地方找

  6. 软工实践-Alpha 冲刺 (10/10)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 完成所有界面的链接,整理与测试 展示GitHub当日代码/ ...

  7. caffe神经网络模型的绘图

    Python/draw_net.py, 这个文件,就是用来绘制网络模型的.也就是将网络模型由prototxt变成一张图片. 1.安装GraphViz # sudo apt-get install Gr ...

  8. 基于 IBM WAS ND v6.1 搭建稳定高效的集群环境

    如今的电子商务及电子政务应用系统的发展已经到了一个新的阶段,应用系统的成熟度和可用性都达到了更高的水准.因此庞大的部署规模和海量的用户访问成为目前大型电子商务及电子政务应用系统的显著特征.在这样的情况 ...

  9. babel-preset-env: a preset that configures Babel for you

    转载 babel-preset-env is a new preset that lets you specify an environment and automatically enables t ...

  10. TDDL调研笔记

    一,TDDL是什么 Taobao Distributed Data Layer,即淘宝分布式数据层,简称TDDL .它是一套分布式数据访问引擎 淘宝一个基于客户端的数据库中间件产品 基于JDBC规范, ...