资料
用AndroidStudio动态调试smali
教程笔记
调试步骤
源程序修改是一种比较旧的调试方法,使用apktool的-d选项
① java -jar apktool.jar -d 目标.apk -o 结果存放目录
② 修改Android.manifest文件,在application节点中添加android:debuggable=“true”
③ 在入口点的类的onCreate方法中添加
invoke-static{}, Landroid/os/Debug;->waitForDebugger()V
④ 反编译修改过的apk文件
java -jar apktool.jar b -d 代码目录 -o 目标apk名字
⑤ 手动对apk文件进行签名
java -jar signapk.jar testkey.x509.pem testkey.pk8 未签名APK名称 签名APK名称
导入apk代码
① idea/AndroidStudio File ->open,选择编译后的文件目录,导入代码
在相应的位置下好断点.
② 设置远程调试选项
Run->Debug Configurations -> Remote Java Application, Host填写为localhost, 端口为Debug
开放的端口8700
打开目标apk文件
① 打开apk文件,直到看到wait for debugger的提示
② 打开monitor,选中需要调试的程序,开启8700端口
Debug!!!
实战
1. 使用apktool先进行反编译
2. Android Studio 安装ideasmali插件
安装此插件才能进行调试
下载地址: https://bitbucket.org/JesusFreke/smalidea/downloads/
3 使用Android Studio打开app-debug文件夹(工程)
4 添加waitforDebug函数及断点
5 修改AndroidManifest清单文件
debug程序