安卓从入门到进阶第十章(Smali调试)

640?wx_fmt=jpeg

Smali 是安卓 Apk 反编译出来的格式,类似于我们 PC 上面的汇编语言。


语法可以参考这个文章:

https://blog.csdn.net/yuanguozhengjust/article/details/80493963


PC 上的反编译调试工具用 ODIDA(这个也可以调试 Android ),我们这一节想说说 Android Studio 调试 Smali 的 方法。

为什么要做这个调试?我们按正常的逻辑是 Smali 文件转化成 java 去看,先看个大概,然后如果是运算之类的,我们有时候需要调试,不断验证变量值。那么调试就显得很重要。


先放之前的几个调试文章:

然后接下来我们补充 Smali 的调试,把 Android 上的调试策略讲完。

1 下载 Smalidea 包

从https://bitbucket.org/JesusFreke/smali/downloads/ 

下载 smalidea-0.05.zip ,独立的 jar 包是反编译和打包工具,自己想研究可以下载看看,这里我们不用。


640?wx_fmt=jpeg


2 Android studio 安装 Smali 插件

File -- Settings  搜索 plugins 选择从Disk加载

640?wx_fmt=jpeg

    

3 下载反编译 Apk 工具 APKDB

从https://www.duote.com/soft/73200.html

下载下来安装就可以了。


4 反编译 Apk

拿到我们需要调试的 Apk ,选择 Apk,右键菜单,使用 APKDB 编译

640?wx_fmt=png

一路回车就可以了。编译完会在当前目录下出来一个同名字的目录,就是反编译出来的内容。


640?wx_fmt=png

然后删掉 original 目录。

5 将我们反编译出来的目录,导入 Android Studio. 

640?wx_fmt=png

选择我们的目录,一路下一步即可。

6 额外备注

当前我的手机是 ROOT 版本,Apk 不需要调试版本,直接安装运行起来。不是 ROOT 版本,就配置成调试版。(xml配置 android:debuggable="true")


7 开始调试

640?wx_fmt=png

运行Apk,然后使用 Run -- Attach .... Process  选择我们的包名,点击确定即可。


然后在我们需要断下的地方,设置断点,这里设置在 onclick 方法里面。

640?wx_fmt=png

$1 代表匿名类。然后我们点击 Apk 中的按钮,就会在这里断下来。

640?wx_fmt=jpeg

剩下的就是你自由发挥了。

--完--



后台回复  精华 获取去年一年的精彩 PDF。

推荐你读:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员入门进阶(免费辅导开题报告)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值