Android 脱壳工具

drizzleDumper介绍

drizzleDumper是一款基于内存搜索的Android脱壳工具。是根据strazzere大神的android-unpacker优化改造而成,这是一款ndk写的动态Android脱壳的工具,原理简单来说就是ptrace,然后在内存中匹配特征码和dex的magic,最后dump到文件。

apk文件结构

dex文件头结构

drizzleDumper修改优化的地方:

1.android-unpacker基本上就是匹配odex magic的函数时(下图),而drizzleDumper不管odex了,专心匹配dex的magic。

2.android-unpacker用pread(下图),而drizzleDumper换了read和lseek,具体就不说为啥了,这是非常重要的一点。

3.直接抛弃了android-unpacker中的壳的特征匹配这一整块儿内容。

4.android-unpacker只匹配和dump一次,而drizzleDumper引入了双循环机制,这点对脱壳成功也非常重要。

5.android-unpacker在peek_memory(下图)中进行magic匹配,drizzleDumper改了逻辑,换了一种匹配方式。

6.另外还增加了一匹配种方法,来增强匹配的成功率。

7.引入了wait_times机制(很无奈,等待真正的程序dex加载到内存)

8.其他..

drizzleDumper使用

1.获取root权限
执行adb root命令 或者 adb shell su

2.将drizzleDumper文件adb push到/data/local/tmp路径下

3.安装apk
adb install apk

4.运行apk

5.执行脱壳工具
adb shell ./data/local/tmp drizzleDumper apk包名 2

6.dump下来的dex文件会存到/data/local/tmp路径下,将文件下载下来

7.剩下就可以通过dex2jar等工具,解析源码了。

drizzleDumper实战测试