【Android逆向实战系列】使用IDA Pro对Dalvik指令进行动态调试

准备工作

  • 准备工作
  • 一台Mac os/Window系统的电脑
  • 一部root的手机
  • 一条数据线
  • IDA Pro
  • adb
  • 需要进行调试的APK

演示环境

  • Mac os系统的电脑
  • 小米5 Max
  • IDA Pro 7.0 64位

开始

  1. 将手机通过数据线连接到电脑
  2. 在手机上安装Xposed Installer工具,并安装XInstaller插件。安装完毕后,在XInstaller的其他设置中找到调试应用并勾选,勾选完毕后回到Xposred Installer软重启设备。

注:如果是未ROOT的设备,可以在AndroidManifest.xml的application标签里添加android:debuggable=“true”,然后保存后进行二次打包。

  1. 通过adb install 将apk文件安装到手机中
adb instll /Work/Demo/test.apk
  1. 用IDA Pro打开apk,选择classes.dex文件。
问: 为什么是classes.dex文件呢?
答: classes.dex是应用的主要自行程序,包含着所有的Dalvik指令。
  1. 等待IDA Pro加载分析完毕后,依次点击菜单栏的Debugger > Debugger options,在弹出的窗口中勾选"Suspend on process entry point",并点击右下角的"Set specific options"按钮。

image

  1. 在新弹出的窗口中,填入ADB executable路径。然后点击"Fill from AndroidManfest.xml"按钮,IDA Pro就会自动加载"Package Name"和"Activity",最后点击"ok"按钮即可。

image

  1. 然后在菜单栏中依次点击"Debugger-Process Options",在弹出的窗口中将"Port"改为8700,其他的保持不变。

image

问:为什么是8700端口呢?
答:在Android SDK中提供了一款工具DDMS,它用来监视App的运行状态和结果。它的默认端口是8700。
  1. 到此所有的工作准备就绪,然后就可以下断点开始调试App了。

  2. 结合前面打开的Classes.dex文件找到对应的内存基址,然后找到该内存基址,打上断点。

使用技巧

  • 打开本地变量窗口

    点击菜单栏上的"debugger-use source level debugger",然后点击"debugger-debugger windows - locals"

  • 单步跟踪

    按下F7或者F8

更多好文点击访问https://blog.52zhuanke.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值