IDA附加调试apk程序,并修改内存,编写IDA脚本程序,把修改后的dex文件dump到本地
来源:互联网 发布:淘宝滔搏运动城 真的吗 编辑:程序博客网 时间:2024/05/14 10:11
我的测试环境:模拟器 Android 4.2 armeavi-v7a
1.IDA附加调试apk程序
找到IDA所在目录,在dbgsrv文件夹下找到程序android_server
在这里按住“Shift +鼠标右键”,打开控制台
把程序android_server push到安卓设备/data/local/tmp/目录下、提权并运行
转发端口
在打开一个控制台
注意:在这里我们要先在设备中运行之前安装的apk。
之后打开IDA程序
到这里就附加成功了,我们下一步就可以修改程序的内存了。
2.修改程序内存
这个程序是一个算加法的程序,正常结果是13,我们修改内存中方法的二进制代码,将其改为减法。
再打开一个IDA,找到方法的代码相对于dex文件的偏移。
将apk文件解压,把解压出的dex文件在IDA中打开,找到这个方法的偏移大小
因为这个测试程序是自己写的,所以我知道方法就在MainActivity这个类中,为了快速找到,我们“Ctrl +F "直接搜索
我们看到相对于dex文件头的偏移大小是0x13F808
然后我们在附加进程的IDA中找到内存中dex头的地址大小
在附加进程的IDA界面按快捷键“Ctrl + S”,选择dex文件
在Hex View-1视图中点击鼠标右键,完成如下操作
找到dex头在内存中的地址 0x4BD6B028
到这了我们就可以算出方法在内存中的位置
dex头在内存中的地址 0x4BD6B028 + 相对于dex文件头的偏移大小是0x13F808 = 内存中方法的地址是 4BEAA830
我们在附加进程的IDA中找到这个地址位置
快捷键“G”,输入地址0x4BEAA830
我们将90 改为 91,便将方法中的加法改为减法了
鼠标点击90,按快捷键“F2”,将其修改为91,之后在按F2保存
之后点击运行程序
结果为1,我们已经将加法变为减法了
3.接下来我们将内存中的dex文件通过运行IDA脚本程序dump到本地
前面我们已经知道了dex头在内存中的地址 0x4BD6B028
接着来要知道dex文件的大小
了解文件结构的话,就知道0x261A94就是dex文件的大小
不知道,那也没关系,我们使用工具010 Editor运行dex模板查看,结果相同
接着我们编写IDAdump脚本,并运行。
打开脚本窗口- File–ScriptCommand 或直接用快捷键“Shift +F2”
static main(void){
auto fp, begin, end, dexbyte;
//打开或创建一个文件
fp = fopen("d:\\dump.dex", "wb");
//dex基址
begin = 0x4BD6B028;
//dex基址 + dex文件大小
end = begin + 0x261a94;
for ( dexbyte = begin; dexbyte < end; dexbyte ++ ){
//按字节将其dump到本地文件中
fputc(Byte(dexbyte), fp);
}
}
我们发现dump下来的dex文件,与我们本身的dex文件是不同的
用工具Beyond Compare,选择16进制比较
找到不同的地方后用010 Editor工具查看具体情况。
后续更近。。。
- IDA附加调试apk程序,并修改内存,编写IDA脚本程序,把修改后的dex文件dump到本地
- IDA动态调试dump加固的Dex文件(Dalvik4.4--)
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- IDA Pro内存dump脚本
- 使用IDA从内存中dump指定的dex
- 使用IDA从内存中dump指定的dex
- 使用ida调试dex文件
- Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
- IDA动态调试程序
- IDA调试原生程序
- 把MAP文件导入IDA Pro的小程序
- 把MAP文件导入IDA Pro的小程序
- 把MAP文件导入IDA Pro的小程序
- Android逆向之旅---应用的"反调试"方案解析(附加修改IDA调试端口和修改内核信息)
- IDA动态调试技术及Dump内存
- ida配合windbg调试程序
- CreateThread创建线程函数
- The MAX<hdoj2803>
- Red5视频直播技术笔记
- 根据需要为不同的类设置不同的输出日志名称及日志格式
- 严格 身份好正则表达式
- IDA附加调试apk程序,并修改内存,编写IDA脚本程序,把修改后的dex文件dump到本地
- 在你的 composer.json 中增加 doctrine/dbal 依赖
- 2016 Multi-University Training Contest 1 GCD【RMQ+二分】
- POJ 2823 Sliding Window
- 剑指offer 替换空格
- Unity UGGUI RawImage 渲染小地图
- C++正则表达式
- 一个通用高自由度技能系统的设计(一)
- 【BZOJ1503】[NOI2004]郁闷的出纳员