【原创】IDA调试dex代码初体验
来源:互联网 发布:python time sleep作用 编辑:程序博客网 时间:2024/06/04 22:35
IDA 6.6新添加了对dex文件的调试支持,由于工作原因,我第一时间拿到了这个版本,下面就是针对这个功能的一些简单体验。
IDA对这个新功能提供了一个PDF文档进行说明,按照教程一步步来就可以完成对例子程序的调试,我这里选sina微博作例子简单讲一下实际调试的流程。
准备工作
根据android的官方文档,如果要调试一个App里面的dex代码,必须满足以下两个条件中的任何一个:
1) App的AndroidManifest.xml中Application标签包含属性android:debuggable=true
2) /default.prop中ro.debuggable的值为1
由于正常的软件发布时都不会把android:debuggable设置为true,所以要达成条件1)需要对app进行重新打包,这不仅每次分析一个App都重复操作,而且很多软件会对自身进行校验,重打包后执行会被检测到,所以想办法满足第2)个条件是个一劳永逸的办法,我实际使用的方法就是满足第二个条件。由于default.prop是保存在boot.img的ramdisk中,这部分每次重新启动都会重新从rom中加载,所以要到目的必须修改boot.img中的ramdisk并重新刷到设备中。我测试使用的设备为Nexus 7,修改步骤如下:
a) 从Google官方网站下载到boot.img,
b) 使用工具(abootimg,gunzip, cpio)把boot.img完全解开,获取到default.prop
c) 修改default.prop
d) 把修改后的文件重新打包成boot_new.img
e) 使用fastboot工具把boot_new.img刷入设备(fastboot flash boot boot_new.img)
图1 修改后的default.prop内容实际调试
解压缩sina微博的apk,把dex文件拖到ida中进行分析(非常慢,文件会到6G多,估计IDA的dex加载器有BUG),分析完成后按照IDA的教程对Debugger Options进行设置。
图2 Debugger Options设置
设置后找到App的入口Activity——.SplashActivity, 在SplashActivity_OnCreate方法设置断点.
图3 sina微博入口Activity定义
图4 在SpalshActivity的OnCreate方法设置断点点击执行或者按F9即可开始运行App,由于在入口Activity的OnCreate方法设置了断点,所以App执行后就会停在刚才设置的断点处等待用户操作。
图5 执行后程序中断在设置的断点处
IDA对这个新功能提供了一个PDF文档进行说明,按照教程一步步来就可以完成对例子程序的调试,我这里选sina微博作例子简单讲一下实际调试的流程。
准备工作
根据android的官方文档,如果要调试一个App里面的dex代码,必须满足以下两个条件中的任何一个:
1) App的AndroidManifest.xml中Application标签包含属性android:debuggable=true
2) /default.prop中ro.debuggable的值为1
由于正常的软件发布时都不会把android:debuggable设置为true,所以要达成条件1)需要对app进行重新打包,这不仅每次分析一个App都重复操作,而且很多软件会对自身进行校验,重打包后执行会被检测到,所以想办法满足第2)个条件是个一劳永逸的办法,我实际使用的方法就是满足第二个条件。由于default.prop是保存在boot.img的ramdisk中,这部分每次重新启动都会重新从rom中加载,所以要到目的必须修改boot.img中的ramdisk并重新刷到设备中。我测试使用的设备为Nexus 7,修改步骤如下:
a) 从Google官方网站下载到boot.img,
b) 使用工具(abootimg,gunzip, cpio)把boot.img完全解开,获取到default.prop
c) 修改default.prop
d) 把修改后的文件重新打包成boot_new.img
e) 使用fastboot工具把boot_new.img刷入设备(fastboot flash boot boot_new.img)
图1 修改后的default.prop内容
解压缩sina微博的apk,把dex文件拖到ida中进行分析(非常慢,文件会到6G多,估计IDA的dex加载器有BUG),分析完成后按照IDA的教程对Debugger Options进行设置。
图2 Debugger Options设置
设置后找到App的入口Activity——.SplashActivity, 在SplashActivity_OnCreate方法设置断点.
图3 sina微博入口Activity定义
图4 在SpalshActivity的OnCreate方法设置断点
图5 执行后程序中断在设置的断点处
0 0
- 【原创】IDA调试dex代码初体验
- IDA调试dex代码初体验
- 使用ida调试dex文件
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- 利用IDA对dex文件进行动态调试过程
- 一次完整的IDA动态调试dex过程
- IDA动态调试dump加固的Dex文件(Dalvik4.4--)
- Android逆向系列之动态调试4–IDA调试dex
- JAVABEAN初体验【原创】
- IBM DB2初体验 - [原创]
- Android无源码调试Native代码(gdb+IDA)
- IDA动态调试so源码 F5伪代码查看
- IDA附加调试apk程序,并修改内存,编写IDA脚本程序,把修改后的dex文件dump到本地
- 利用IDA6.6进行apk dex代码动态调试
- IDA 远程调试
- IDA 远程调试
- 单文档多视图
- python通过cx_Oracle连接oracle设置
- 多媒体工作难题总结
- vi 中的复制与粘贴
- NYOJ 题目168 房间安排
- 【原创】IDA调试dex代码初体验
- hadoop环境搭建
- 利用共享内存来恢复玩家数据
- Optimistic locking---PoEAA
- uva 357 - Let Me Count The Ways
- iOS中七种手势
- viewController 和 tableView 相关方法执行顺序及作用
- Matlab mser(最大极值稳定区域)
- UITableView学习笔记