Android studio动态调试smali
Posted 人怜直节生来瘦,自许高材老更刚。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio动态调试smali相关的知识,希望对你有一定的参考价值。
前面介绍了使用IDA动态调试smali,这种方法设置简单,不用重打包,用起来方便,但是如果变量类型设置错误则会马上退出调试,这是让人不爽的地方,而使用android studio则不会。
0x01 工具
①Android Studio最新版。
②apktool尽量使用最新版的。
③ideasmali插件。下载地址https://github.com/JesusFreke/smali/wiki/smalidea
0x02 具体步骤
安装ideasmali插件,选择File->Settings->Plugins,安装之前下载的ideasmali插件。
①Android Studio最新版。
②apktool尽量使用最新版的。
③ideasmali插件。下载地址https://github.com/JesusFreke/smali/wiki/smalidea
0x02 具体步骤
安装ideasmali插件,选择File->Settings->Plugins,安装之前下载的ideasmali插件。
![](https://image.cha138.com/20210611/efa0c92ce9124219ad6c1aca246868cd.jpg)
以调试状态启动app
![](https://image.cha138.com/20210611/70f5038f01cc4d629a812d23a64e8f92.jpg)
通过ddms查看端口:
![](https://image.cha138.com/20210611/d1652512a6ca46d987f50af9466a6e3b.jpg)
如果不用 ddms 可以通过adb shell执行 ps | grep kugou命令查看转发端口:
![](https://image.cha138.com/20210611/2d4077b35b134ca1a94f2baf120da60c.jpg)
然后进行端口转发:
adb forward tcp:8700 jdwp:24551
记住这时候需要将DDMS关掉,不然会出现错误![](https://image.cha138.com/20210611/36fde18f4ff047fba5a8af9f136c7896.jpg)
创建DebugSmali/src目录,使用apktool或者baksmali反编译要调试的apk到DebugSmali/src目录,使用Android Studio导入该目录,如图所示:
![](https://image.cha138.com/20210611/e1d3d030a0ad4c0eba5881dde10afc88.jpg)
然后选择Create project from existing sources,之后一直选择next。
![](https://image.cha138.com/20210611/6dc8c8ee20224ab89f84fd242f4a0bc0.jpg)
成功导入工程后右键点击 src 目录,设定
Mark Directory As->Sources Root
![](https://image.cha138.com/20210611/1419a78346334dfda1e450feefcc1269.jpg)
配置远程调试的选项,选择Run-->Edit Configurations:
![](https://image.cha138.com/20210611/aef9a3b1797a4cf6ac2f9d03f1717df8.jpg)
增加一个Remote调试的调试选项,端口选择:8700
![](https://image.cha138.com/20210611/98b0b65d48c645af8b0cd12a00fc4ce3.jpg)
设置端口号
![](https://image.cha138.com/20210611/a181381377a64ec7a43c0c42035d2e44.jpg)
之后选择File-->Project Structure 配置JDK
![](https://image.cha138.com/20210611/c4c2548f0e4b4cc9b8864e0768d30428.jpg)
![](https://image.cha138.com/20210611/8bd0de86da9944448e80408a4547260a.jpg)
下好断点之后Run->Debug,
![](https://image.cha138.com/20210611/5da4a41ed930483c9fae241f1240a2b5.jpg)
稍等几秒,断点触发后就可以单步调试
![](https://image.cha138.com/20210611/59e5180396064888845ee1dcb28ee5d2.jpg)
以上是关于Android studio动态调试smali的主要内容,如果未能解决你的问题,请参考以下文章
Android调试系列—使用android studio调试smali代码
Android逆向笔记-使用Android Studio调试Smali代码(方式一)