本文部分参考至吾爱破解https://www.52pojie.cn/thread-658865-1-1.html
AndroidStudio动态调试smali配置操作稍微有些繁琐,为了加深印象,同时方便日后翻阅查询,所以有了这篇博客。
1、环境与工具
AndroidStudio V3.2beta1
smaliidea——AndroidStudio插件 链接:https://pan.baidu.com/s/1htl26qS 密码:0pre
AndroidKiller V1.3.1.0
jdk1.8.0_171
2、安装smaliidea插件
3、AndroidKiller分析apk
将目标apk文件拖入到AndroidKiller中分析,找到要调试APK的包名和入口的Activity
记住包名ctf.bobdylan 和入口的Activity名 ctf.bobbydylan.M
这里要注意一下 在application标签里面要有 android:debuggable=”true” 这句代码,没有是不能调试apk的 现在调试的这个例子默认是有这句代码的 有的apk中没有这句代码要自行添加上
然后找到该文件的工程目录,此目录将被AndroidStudio导入。
4、导入工程到AndroidStudio,以及AndroidStudio配置
可以直接导入上面的工程目录,当时我们还是做个拷贝吧。
选择整个工程目录导入,然后一直保持默认配置点next即可,导入后切换到工程视图。
选择smali目录作为资源目录,见下图
配置远程调试的选项,选择Run–>Edit Configurations 并增加一个Remote调试的调试选项,端口选择:8700
5、监听端口:打开模拟器与Monitor
模拟器我这里选择的是AndroidStudio自带的,把自己要调试的APK安装到手机模拟器中。
打开命令行 输入命令 :
adb shell am start -D -n ctf.bobdylan/ctf.bobbydylan.M
对apk进行动态调试 这条命令运行后手机屏幕将会进入到调试界面(如果手机屏幕没有进入到调试界面说明USB没有连接好手机 或者USB调试模式 没有打开 或者其他原因) ,手机将自动运行被调试App
因为新版AndroidStudio已经在菜单中移除了Monitor,我们需要手动在SDK文件夹中找到Monitor,同时Monitor不支持JDK8以上的版本,比如JDK10。如下为我的Monitor路径,请根据自己SDK安装情况查找。
E:\Sdk\tools\lib\monitor-x86_64\monitor.exe
查看Android Device Monitor 记住下图中Online对应的值12863, 然后把Android Device Monitor关掉(这里一定要关掉,因为它会占用8700端口 导致后面转发端口失败)
6、附加进程
打开命令行窗口 输入命令
adb forward tcp:8700 jdwp:12863
转发8700 端口 (这里 jdwp是自己Android Device Monitor中要调试app的Online值 )
在Smali中下好断点 断点的意思是程序运行到下断点的那行代码就会断下来 ,我们找到入口类ctf.bobbydylan.M”
下好断点之后Run–>Attach to Local Process附加进程,这里的smali是我们之前配置好的调试选项
此时手机会进入程序 在手机上输入用户名和密码 点登陆 程序会断在我下的断点处
单步调试为F8,运行为F9。