AndroidStudio动态调试smali

本文部分参考至吾爱破解https://www.52pojie.cn/thread-658865-1-1.html

1、环境与工具

AndroidStudio V3.2beta1

smaliidea——AndroidStudio插件 链接:https://pan.baidu.com/s/1htl26qS 密码:0pre

AndroidKiller V1.3.1.0

jdk1.8.0_171

2、安装smaliidea插件

AndroidStudio动态调试smali_第1张图片

3、AndroidKiller分析apk

将目标apk文件拖入到AndroidKiller中分析,找到要调试APK的包名和入口的Activity

AndroidStudio动态调试smali_第2张图片

记住包名ctf.bobdylan 和入口的Activity名 ctf.bobbydylan.M

这里要注意一下 在application标签里面要有 android:debuggable=“true” 这句代码,没有是不能调试apk的 现在调试的这个例子默认是有这句代码的 有的apk中没有这句代码要自行添加上

AndroidStudio动态调试smali_第3张图片

然后找到该文件的工程目录,此目录将被AndroidStudio导入。

AndroidStudio动态调试smali_第4张图片

4、导入工程到AndroidStudio,以及AndroidStudio配置

可以直接导入上面的工程目录,当时我们还是做个拷贝吧。

AndroidStudio动态调试smali_第5张图片

选择整个工程目录导入,然后一直保持默认配置点next即可,导入后切换到工程视图。

AndroidStudio动态调试smali_第6张图片

选择smali目录作为资源目录,见下图

AndroidStudio动态调试smali_第7张图片

配置远程调试的选项,选择Run–>Edit Configurations 并增加一个Remote调试的调试选项,端口选择:8700

AndroidStudio动态调试smali_第8张图片

AndroidStudio动态调试smali_第9张图片

5、监听端口:打开模拟器与Monitor

模拟器我这里选择的是AndroidStudio自带的,把自己要调试的APK安装到手机模拟器中。

打开命令行 输入命令 :

adb shell am start -D -n ctf.bobdylan/ctf.bobbydylan.M

对apk进行动态调试 这条命令运行后手机屏幕将会进入到调试界面(如果手机屏幕没有进入到调试界面说明USB没有连接好手机 或者USB调试模式 没有打开 或者其他原因) ,手机将自动运行被调试App

AndroidStudio动态调试smali_第10张图片

因为新版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端口 导致后面转发端口失败)

AndroidStudio动态调试smali_第11张图片

6、附加进程

打开命令行窗口 输入命令

adb forward tcp:8700 jdwp:12863

转发8700 端口 (这里 jdwp是自己Android Device Monitor中要调试app的Online值 )

在Smali中下好断点 断点的意思是程序运行到下断点的那行代码就会断下来 ,我们找到入口类ctf.bobbydylan.M"

AndroidStudio动态调试smali_第12张图片

下好断点之后Run–>Attach to Local Process附加进程,这里的smali是我们之前配置好的调试选项

AndroidStudio动态调试smali_第13张图片

AndroidStudio动态调试smali_第14张图片

此时手机会进入程序 在手机上输入用户名和密码 点登陆 程序会断在我下的断点处

AndroidStudio动态调试smali_第15张图片

单步调试为F8,运行为F9。

你可能感兴趣的:(Android)