AndroidStudio动态调试smali(实测可用)

0x01 工具
①Android Studio最新版。
②apktool尽量使用最新版的。
③ideasmali插件。下载地址https://github.com/JesusFreke/smali/wiki/smalidea

0x02 具体步骤
安装ideasmali插件,选择File->Settings->Plugins,安装之前下载的ideasmali插件。
AndroidStudio动态调试smali(实测可用)_第1张图片
AndroidStudio动态调试smali(实测可用)_第2张图片

安装的是压缩包;
注意:模拟器无需在 AndroidManifest.xml中添加android:debuggable=“true”,只需用adb命令启动调试就行了见下文
导入反编译后的smali文件:
AndroidStudio动态调试smali(实测可用)_第3张图片
AndroidStudio动态调试smali(实测可用)_第4张图片
可以导入整个工程文件,也可以仅导入smali文件夹;
Android studio设置远程调试选项
AndroidStudio动态调试smali(实测可用)_第5张图片
AndroidStudio动态调试smali(实测可用)_第6张图片

8700被占用,更改端口;
AndroidStudio动态调试smali(实测可用)_第7张图片

Android studio Jdk设置
AndroidStudio动态调试smali(实测可用)_第8张图片
AndroidStudio动态调试smali(实测可用)_第9张图片

将class.dex用apk助手反编译的smali文件目录作为资源目录
AndroidStudio动态调试smali(实测可用)_第10张图片
AndroidStudio动态调试smali(实测可用)_第11张图片

用AndroidKiller查看要调试的app的包名与入口activity的名字
AndroidStudio动态调试smali(实测可用)_第12张图片

adb命令启动调试
首先运行模拟器,模拟器内启动调试程序
然后cmd窗口依次输入下面的命令
adb devices#查看模拟器
adb -s emulator-5554(模拟器名) shell#打开模拟器的shell
am start -D -n (包名/入口名) 开启调试
AndroidStudio动态调试smali(实测可用)_第13张图片
shell 模式下输入 linux命令 ps 查看模拟器内运行的程序找到我们要调试的程序的pid,这里是3010
在这里插入图片描述
附加进程退出shell 模式,cmd模式下输入命令 adb forward tcp:8700 jdwp:3010
AndroidStudio动态调试smali(实测可用)_第14张图片
开始调试
在这里插入图片描述

断点生效后如下图:之前的命令如下:
AndroidStudio动态调试smali(实测可用)_第15张图片
AndroidStudio动态调试smali(实测可用)_第16张图片
AndroidStudio动态调试smali(实测可用)_第17张图片
AndroidStudio动态调试smali(实测可用)_第18张图片

你可能感兴趣的:(AndroidStudio动态调试smali(实测可用))