IDA调试dex代码初体验
来源:互联网 发布:大韩火花机怎么编程 编辑:程序博客网 时间:2024/06/11 21:34
标 题: 【原创】IDA调试dex代码初体验
作 者: 火翼[CCG]
时 间: 2014-06-09,17:17:37
链 接: http://bbs.pediy.com/showthread.php?t=188870
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 执行后程序中断在设置的断点处
作 者: 火翼[CCG]
时 间: 2014-06-09,17:17:37
链 接: http://bbs.pediy.com/showthread.php?t=188870
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方法设置断点
图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
- Android无源码调试Native代码(gdb+IDA)
- IDA动态调试so源码 F5伪代码查看
- IDA附加调试apk程序,并修改内存,编写IDA脚本程序,把修改后的dex文件dump到本地
- 利用IDA6.6进行apk dex代码动态调试
- IDA 远程调试
- IDA 远程调试
- IDA&&BOCHS调试MBR
- IDA调试基础------断点
- Eclipse开发Android时报错Unable to execute dex: Multiple dex files define
- poj 3636 Dilworth定理(嵌套方形娃娃) Dilworth定理详细讲解
- 使用NDK r10构建Cocosd-x v3.2时编译和链接错误的解决办法
- iOS开发 ---- Swift基础语法。
- 设计模式——模板方法模式(TemplateMethod Pattern)
- IDA调试dex代码初体验
- 设计模式:桥接模式
- 如何再linux下安装uci (unified configguration interface)
- 求矩形的周长和面积【Java】
- Storm源码分析<转>
- myproject/gen already exists but is not a source folder. Convert to a source folder or rename it.
- 不确定个数的数组参数的写法.
- [USACO 2014 Jan Silver]Bessie Slows Down
- java学习-变量初始化(member initialization)