Android安全–一次简单的脱壳Dump dex实践

来源:互联网 发布:心徹为知,循道而为 编辑:程序博客网 时间:2024/05/17 23:06

加载的模块libdvm.so,找到其中的函dvmdexfileopenpartialPKviPP6DvmDex,在这个函数下断点。

2015-07-30_093446

2015-07-30_093538

2015-07-30_093556

为什么要在这个函数下断点,因为这个函数是加载dex文件的,R0就是加载的dex文件的地址。

然后点击IDA的继续,程序便会断在这个函数上面。

2015-07-30_112539

这时查看R0的值,然后显示其内存如下:

2015-07-30_112954

2015-07-30_113029

我们看到了dex文件的标志。

然后打开idc脚本,修改dump的内存起始地址和结束地址,起始地址就是R0的值,结束地址就是R0加上dex文件的大小,然dex文件的大小在dex header的0×20处,也就是0xFAEB4。

2015-07-30_113131

2015-07-30_113545

点击run,之后会在D盘下面生成一个1M左右的dex文件,这就是我们dump出来的dex文件。

2015-07-30_114119

使用dex2jar转成jar文件,再使用jd-gui.exe打开,得到程序代码:

2015-07-30_124918

也可以把dex文件替换回去,打包运行。