在做逆向的过程中,往往会遇到一些很复杂的逻辑,这时,硬肝反编译后的代码往往不是一个明智的选择,这时候就需要无源码debug,也就是Smali Debug。因此Smali Debug基本上一个必备的核心技能。

一、需要的工具

smalidea-0.05

android studio

1.1 安装插件

打开as,安装smalidea-0.05

image-20201204104723294

二、debug配置

2.1 创建运行配置

新建一个运行配置,选择remote, 选择attach to remote jam 方式

image-20201204104835103

2.2 在AndroidManifest打开debug模式

打开反编译后的AndroidManifest文件

在Application中增加android:debuggable="true"属性,用于打开debugger 模式。

image-20201204105435157

修改完成后,重新编译apk,并安装

2.3 as中导入smali文件

打开As,导入反编译后的smali文件夹

image-20201205121915483

2.4 启动调试

导入完成后,执行以下命令启动软件

adb shell am start -D -n melandru.lonicera/melandru.lonicera.activity.launch.LaunchActivity
image-20201205122138995

然后应用就会进入debug模式,暂时不管它,回到AS,使用Attach模式进入debug

image-20201205122327829

然后选择需要debug进程

image-20201205122412422

如果一切顺利,那么就会进入debug模式,应用进入主界面

image-20201205122611261

2.5 断点

在你需要的地方打上断点

image-20201205122750383

剩下的便是苦逼的debug操作了

image-20201205135009404