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.apk
P.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
功能计算获取变量值