IDA脚本dump内存的示例

 

////IDC dump dex////
auto fp, dex_addr, end_addr;
fp = fopen("F:\\dump.dex", "wb");
end_addr = r0 + r1;
for ( dex_addr = r0; dex_addr < end_addr; dex_addr ++ )
fputc(Byte(dex_addr), fp);

  

  通常在dvmDexFileOpenPartial()这个函数下断点,R0寄存器指向的地址就是dex文件在内存中的地址,R1寄存器就是dex文件的大小。如果经过了加固,那么内存中可能没有完整的dex,或者如360加固不再走dvmDexFileOpenPartial而是自己实现此函数功能,那么在此处下断点也无法拿到完整的dex。可以考虑使用dexHunter的类抽取法,或者hook mmap等。

posted @ 2020-03-04 11:21  ahuo  阅读(1108)  评论(0编辑  收藏  举报