参照https://www.freebuf.com/column/166020.html
这个博客即可,但是新手可能还是会一脸蒙蔽,下面看看我的实现步骤。完成调试连接准备工作后
- 找到OpenMemory方法,在第一个OpenMemory右击添加断点:
为什么OpenMemory这么多?路过的大神可以解答一下:TODO
- F9一下
可以看到DEX加载到X0寄存器了(不同的手机不一样,你的手机可能是R0或者其它)
- dump出dex
1)找出dex文件的16进制数据
先在IDA View-PC上选择同步到16进制视图
在地址上右击选择jump,跳转到Dex文件的起始字节。
1)计算dex文件的结束地址
根据dex的文件结构,可以知道dex文件的长度为"B4 A1 4C 00",转换大端模式为“4C A1 B4",根据dex文件起始地址"0000007F636FAEA8"可计算结束地址:
0x0000007F636FAEA8 + 0x4CA1B4 = 0x7F63BC505C
2)计算dex文件的结束地址
利用idapro的IDC脚本dump出dex文件
auto i,fp;
fp = fopen("d:\\dump222.dex","wb");
for (i = 0x0000007F636FAEA8; i <= 0x7F63BC505C; i++){
fputc(Byte(i),fp);
}
点击运行保存文件
使用Jadx-gui工具打开dex文件,打开成功,说明dex文件提取正确。
0 条评论