工具准备
- Android Studio安装
- ideasmali插件下载:https://github.com/JesusFreke/smalidea
前置操作
在使用Android Studio动态调试前,需要先获得smali代码工程,可以选择使用AndroidKiller(APK改之理)或者Jadx。
AndroidKiller生成smali项目默认路径:AndroidKiller安装目录/projects/[应用名]/Project
Jadx: 导出gradle工程: File -> Save as gradle project
记得先修改这些工程的manifest文件,添加上android:debuggable="true"
安装ideasmali插件
需要注意的是,新版本的Android Studio已经内置了smali的插件,这会覆盖smaliidea,导致在动态调试时看不到变量值。 根据下图,删除上面这个smali的.smali配置,为下面这个smali配置上.smali。
Android Studio导入smali工程并调试
选择File->New->Import Project,选择Gradle工程,导入smaili项目即可。
右键将根目录标记为Source Root
File->Project Structure设置Android SDK版本与手机系统版本相同
配置调试
这里的核心关键是要使Attach debugger
按钮能用,所以只需要添加一个Android app的配置项即可
开始调试
- 安装apk到手机或模拟器
adb install output.apk
- 启动调试 ``` adb shell am start -D -n 包名/activity全名
Example
adb shell am start -D -n com.test.example/com.test.example.SplashActivity ```
- Attach到progress
- 添加断点运行到指定位置就会自动断下来了
文档信息
- 本文作者:Yawei Wang
- 本文链接:https://pfcstyle.github.io/2019/01/22/android-reverse-AS-smali/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)