我们知道很多apk光是静态调试时远远满足不了我们对apk的分析,这个时候,我们就需要来一波静态调试。
此处为个人笔记,也为入门小白引路,这里就不看结果了,主要是教大家怎么结合调试。
起因是昨天刚看了动态调试的方法,我就想来试试。结果电脑上只有Android studio。好吧,那我就百度了Android studio的调试。然后用模拟器,结果那个模拟器太恼火了,慢死人,还卡。(学生党,只能苦逼用低配笔记本)然后身边唯一一根数据线居然罢工。没办法,后来突然想起来,蓝叠模拟器很快了,可不可以试试。于是就有了下文。好了,不废话了,进入正题。

一、工具

毫无疑问:Android studio(附带SDK,这个不多说) 蓝叠
然后有个大家可能大家不知道的东西 smalidea 这个百度一大堆。我就不多说了,自己去下一个就是了
然后一个反编译的工具 jeb apkIDE AndroidKiller等等,都可以
我用的是jeb

二、环境

1

java那些环境我想这个不应该说了,然后就是adb的环境,最好是加到环境配置中去,方便,省事。

2

smalidea 这个是配置到Android studio的,配置了才能看smali文件
具体步骤:

然后选择你本地smalidea文件,这里说一句,最好不要有中文路径。也行不一定会出问题,但是不一定不会出问题。

这个样子就是OK了
一般会重启一下Android studio

三、准备

这部分是反编译出文件,然后导入到Android studio中去。
我这里用的jeb反编译的,各位请用自己喜欢的,都可以哈。

看到反编译成功,我们就去把文件提取出来
这里最好是也是不要放中文路径最好
接来下比较重要,一步一步操作。

然后选择我们放进去的反编译的文件夹

然后点那个三角

添加一个remote
名字随便取,端口号为8700

之后我们打开cmd。进行adb的安装
adb install -r apk的位置\apk全名

看到succe就知道成功了,蓝叠也会有提示的(一直默认蓝叠是开启的,没开的我就无语了)

然后进去调试状态
adb shell am start -D -n packageName/ActivityName

蓝叠也会这样显示

说明进入了调试状态,这个时候千万不要去点Force Close

四、进入调试

进入调试之前我们还需要去monitor看看我们是否端口号给正确了。

点击我们需要调试的apk包名,把8700端口给它
然后我们就可以调试了
这个时候我们需要去源码看看我们在哪里下断点了。这里就不多说了
我直接点断点了。在这行代码前面点一下,就断好了

然后点上面那个就可以进行调试了

下面是我们的信息地方,我们可以点加,进行添加寄存器

最后就可以进行调试,看看寄存器的值的变化了。F7是进入方法,F8是单步。