0x01 步骤
1. Vysor 安装
为什么安装这个,adb wifi 连接测试机后远程操作才是王道_(:з」∠)_
有能力请支持正版!!!有能力请支持正版!!!有能力请支持正版!!!
官网下载,修改Vysor.app/Contents/Resources/app/unpacked-crx/license.js解锁Pro版
var isLicensedScoped = true;
var isLicenseCachedScoped = true;
担心版本更迭后失效,可修改同目录下Manifest.json中的版本号至大数字
2. smalidea 安装
官方文档:https://github.com/JesusFreke/smali/wiki/smalidea
IntelliJ/Android Studio 安装 smalidea 插件
进入 IDE settings 中的 Plugins
选择
Install plugin from disk选择smalidea-0.xx.zip,目前最新是0.05

apktool 反编译 apk
# 这里反编译wx,因为对资源混淆了,所以使用 -r 不解码资源 > apktool -r d xx.apkP.S. 不要用baksmali,是因为baksmali只反编译classes.dex中的代码,但是其他扩展dex没有处理。现在大的app基本都会有若干扩展dex
导入IDE,选择
Import project(Eclipse ADT, Gradle, etc.)
选择
Create project from existing sources之后一路next。
将dex对应的目录(smali, smali_classes2…)都执行
Mark Directory As -> Sources Root(图里因为已经标记了,所以显示为unMark)
File –> Project Structure配置 SDK
添加一个 Remote 配置,更改端口为8700(也可以直接改为ADM中进程对应端口,只是会每次debug前都需要查看是否变更)

先在测试机中安装要调试apk
在 ADM 选择要调试的进程,选中后会可见在后面自动添加8700调试端口(图中8611/8700两个端口都可实现调试连接)

按下debug开始调试
0x02 可能遇到的问题
1. ADM功能无反应
MAC上ADM(Android Device Monitor)在高版本jdk中无任何响应,需要降级到jdk-8u151-macosx-x64
Windows暂时未知
相关链接
- https://stackoverflow.com/questions/47089757/android-device-monitor-freezes-on-mac-os-x
- https://blog.csdn.net/OneDeveloper/article/details/80039843
替换教程
- 在下载链接中下载
jdk-8u151-macosx-x64进行安装 - 进入
/Library/Java/JavaVirtualMachines删除高版本jdk目录 java -version检查版本,如果缺少环境变量需要在.bash_profile配置JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
2. 真机ADM不显示进程
通常在用IDA调试android dex时,如果程序的debugable选项未开启,则无法进行smali调试,以往通常有两种做法:
- 修改程序的
AndroidManifest.xml中的debugable="true",然后签名重打包 - 修改系统属性,将
defalut.prop中ro.debugable设置为1,然后刷机进去
相关链接
安装教程
- 需要刷twrp、mgisk后,安装xposed
adb install BDOpener.apk
3. 断点处查看变量值
在Variables内没有出现的变量,可在断点相应的Frames使用Evaluate Expression功能计算获取变量值
