动态调试Android APP

@hanq  2018年02月12日 17:06

最近研究Xposed,自然而然需要研究一下动态调试技术,特将实验通过的方法记录如下:

准备步骤

  • 一部ROOT过的Android手机,打开开发者模式
  • 安装Xposed(官方网站,安装后需要授权ROOT)
  • 安装Xposed插件XDebuggableBDOpener(这个Xposed搜索不到需要点击这里下载),并激活。
  • 下载IntelliJ IDEA,并激活(激活问题请自行百度或参照Pycharm篇
  • 安装smalidea插件。点击这里了解如何安装。

反编译APK(apktool)

点击这里 下载最新的apktool。并设置到terminal的配置中(mac与Win不尽相同,更详细的操作参见官方文档)

下载要反编译的.apk文件后,执行

apktool d pathToFile.apk

会反编译出整个apk的smali项目文件。

设置Android Remote Debug

  • 打开IntelliJ IDEA
  • Open反编译后的项目
  • 点击右上角的Edit Configurations...
  • 出现的对话框中点击+,选择Remote
  • 修改port8700
  • 点击OK

动态调试

  • 将Android手机插入电脑
  • 打开需要动态调试的APP
  • 点击IntelliJ IDEA右上角的Attach debuger to Android Process
  • 选择对应的进程,并在smali代码中打入断点
  • 手动进入对应功能,即进入断点动态调试

补充

辅助命令

为了快速定位类名可使用:

adb shell dumpsys activity top

来获取当前Activity信息

运行信息

  • macOS High Sierra 10.13.3
  • Xposed Version89
  • BDOpener 1.0
  • IntelliJ IDEA 2017.3
  • smalidea 0.0.5
  • apktool 2.3.1

感谢:代码家提供的参考,(•̀ᴗ•́)و ̑̑


添加新评论