Android Studio动态调试apk

动态调试是Android逆向不可或缺的技能之一,本文简单介绍一下利用Android Studio动态调试apk的流程。

  • 需要的工具

1.反编译/重打包/签名 工具
2.[smaliIdea](https://github.com/JesusFreke/smali/wiki/smalidea
): 在Android Studio内安装该插件后,可以高亮smali语法,方便我们阅读。

  • 重打包Apk

想要调试apk,必须在AndroidManifest内application的属性内,设置可调式属性。我们将apk反编译,添加android:debuggable="true"后,重打包再次签名,安装到手机上即可。

  • debug流程

1.新建文件夹,在其子文件夹的src文件夹内存放反编译后的smali代码。


Android Studio动态调试apk_第1张图片
smali

2.在Android Studio内选择打开现有工程,选择Create Project From Existing Sources,选择下一步直到完成。

3.在工程内,选择src - Mark Directory as - Sources Root。

Android Studio动态调试apk_第2张图片
project

4.在菜单栏内选择Run - Edit Configurations。


Android Studio动态调试apk_第3张图片
Edit Configurations

5.点击 "+" ,新建一个Remote。


Android Studio动态调试apk_第4张图片
remote

6.将localhost的端口号设置为8700,点击OK。
Android Studio动态调试apk_第5张图片
localhost

7.在菜单栏内选择File - Project Structure,配置Project SDK。
Android Studio动态调试apk_第6张图片
Project Structure

8.打开DDMS(Android Device Monitor)。
9.在Terminal 内使用命令,以调试方式启动App,启动成功后,可以在手机上看到Wating For Debugger对话框。


am start

10.打断点,点击Debug开始调试。可以看到我这里debug的invoke值都调试出来了,这样就达到了,无需详细分析代码,直接获取关键值的效果。

execution point
Android Studio动态调试apk_第7张图片
Variables

你可能感兴趣的:(Android Studio动态调试apk)