idc脚本dump内存dex

时间:2024-04-03 09:18:56

1、以调试模式启动程序

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

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

运行当程序断下的时候,r0寄存器的值就是dex文件的首地址,r1的值就是dex文件的大小,然后运行脚本就能dump出dex文件。
idc脚本dump内存dex
idc脚本dump内存dex
idc脚本dump内存dex

3、运行jdb命令

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

idc脚本dump内存dex

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

idc脚本dump内存dex
下面打开运行脚本界面
idc脚本dump内存dex
idc脚本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);
}