idc脚本dump内存dex

◇◆丶佛笑我妖孽 提交于 2020-02-01 00:28:53

1、以调试模式启动程序

adb shell
am start -D -n 包名/入口activity

2、启动ida勾选3项下断点对libdvm.so的dexfileparse函数下断点,ida先不要运行

运行当程序断下的时候,r0寄存器的值就是dex文件的首地址,r1的值就是dex文件的大小,然后运行脚本就能dump出dex文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、运行jdb命令

jdb -connect 包名:hostname=127.0.0.1,port=8601(这里不是8700,DDMS里面前面的那个值)
上面的命令相当于不开DDMS时动态调试执行的
adb forward tcp:8700 jdwp:pid命令

在这里插入图片描述

4、运行ida断下运行脚本文件dump处dex文件

在这里插入图片描述
下面打开运行脚本界面
在这里插入图片描述
在这里插入图片描述
dexfileparse
ida脚本
static main(void)
{
auto fp,dexAddress,end,size;
dexAddress=0x77607640;
size=0x19e118;
end=dexAddress+size;
fp=fopen(“d:\1.dex”,“wb”);
for(;dexAddress<end;dexAddress++)
fputc(Byte(dexAddress),fp);
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!