动态调试是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代码。
smali
2.在Android Studio内选择打开现有工程,选择Create Project From Existing Sources,选择下一步直到完成。
3.在工程内,选择src - Mark Directory as - Sources Root。
project
4.在菜单栏内选择Run - Edit Configurations。
Edit Configurations
5.点击 "+" ,新建一个Remote。
remote
6.将localhost的端口号设置为8700,点击OK。
localhost
7.在菜单栏内选择File - Project Structure,配置Project SDK。
Project Structure
8.打开DDMS(Android Device Monitor)。
9.在Terminal 内使用命令,以调试方式启动App,启动成功后,可以在手机上看到Wating For Debugger对话框。
am start
10.打断点,点击Debug开始调试。可以看到我这里debug的invoke值都调试出来了,这样就达到了,无需详细分析代码,直接获取关键值的效果。
execution point
Variables