android studio动态调试apk最详细教程

前提条件

  1. 首先要懂的smali得语法,知道在哪里下断点,代码逻辑,调试的位置定位很重要,不用太精通,但是最起码的知识点要知道
  2. 你所调试的apk是否可以支持反编译后二次签名,有一些apk包是做了签名效验的,需要破解之后才能打包,有些是加了壳的,根据实际情况去处理你所调试的apk包,这里不仔细说明怎么破解签名效验和脱壳操作。
  3. 需要准备安卓模拟器或者手机(无需ROOT),adb能够正常链接手机
  4. 需要android studio (建议下载最新版本)

开始配置环境

  1. android studio需要安装插件:1,Smalidea 2,Smali Support

1,Smalidea安装,网上很多都是v0.05版本的,由于我的android studio比较新,所以v0.5版本会导致无法正常下断点。所以建议安装v0.06版本
在这里插入图片描述
下载地址:smalidea-0.06
安装步骤:
打开setting>Plugins
在这里插入图片描述
右上角的齿轮 选择 Install Plugin from Disk
然后选择下载好的smalidea-0.06安装即可
2,Smali Support安装
可以直接在Plugins的Marketplace搜索Smali Support就可以直接安装
在这里插入图片描述
至此安装的东西已经就绪完毕了。

3,通过android studio 打开apk包
在这里插入图片描述
android studio 起始页面打开 profile or Debug APK
选择你要调试apk包
在这里插入图片描述
把Android改为Project
在这里插入图片描述
养成好习惯,把反编译出来的smali改为源码文件目录
smali文件右键>Make Directory as > Sources Root

在这里插入图片描述
4,Smali下断点
选择你要在smali源码里面下载断点了 根据自身情况下载断点
在这里插入图片描述
5,修改反编译的apk包改为调试模式

反编译工具很多,可以通过android killer或者apktool2.6都可以,根据自己习惯
(安装android killer需要配置java环境变量,这里不说明,网上大把资料自己可以搜索下 java安装环境配置 就行了)
这里我用android killer。
1,使用android killer打开apk包
在这里插入图片描述
在这里插入图片描述

2,反编译成功之后修改 AndroidManifest.xml文件 在Application 中添加

android:debuggable=“true”

在这里插入图片描述
点击保存后从新编译apk包 安装到手机或者模拟器上
在这里插入图片描述
到这里需要调试的apk包已经准备好了,下面就是准备调试

6,配置android studio调试器

打开Edit Configurations
在这里插入图片描述
点击左上角加号>选择Remote JVM Debug
在这里插入图片描述

在这里插入图片描述
Name:自己随便写
port:这个可以选择默认的 可以根据自己选择端口号
其他的不用修改 然后点击apply再点OK
然后选择刚刚创建的调试器
在这里插入图片描述
再打开Terminal
在这里插入图片描述
然后在手机上打开你刚刚编译修改的apk包运行起来,
通过shell查看包的pid进程

adb shell ps | grep 包名

包名在android killer可以查看
在这里插入图片描述
我这里包名:com.leeyou.td16489493

adb shell ps | grep com.leeyou.td16489493

会显示一下信息
在这里插入图片描述
记住这个pid 7751 等会儿要用到
然后输入

adb forward tcp:5005 jdwp:7751
tcp:端口是在第六步设置调试器设置端口 默认5005
jdwp:换成你apk包的pid

在这里插入图片描述
然后选择Attach Debugger to Android Process
在这里插入图片描述

然后选择apk包名 点击OK
在这里插入图片描述
如果出现Connected to the tarfet VM…说明已经连接成功了!
在这里插入图片描述
剩下的就是在代码段下断点进行调试了

在这里插入图片描述
运行手机的apk或者模拟器的apk调试器会自动在你下的断点停留然后出现参数值
在这里插入图片描述
教程到此结束。供大家参考。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NarClo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值