最近研究Xposed,自然而然需要研究一下动态调试技术,特将实验通过的方法记录如下:
准备步骤
- 一部
ROOT
过的Android手机,打开开发者模式 - 安装Xposed(
官方网站
,安装后需要授权ROOT) - 安装Xposed插件
XDebuggable
或BDOpener
(这个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
- 修改
port
为8700
- 点击
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
感谢:代码家
提供的参考,(•̀ᴗ•́)و ̑̑