由于安卓7.1后采用了SSL pining技术,导致即使在手机或PC端已安装根证书场景下,抓出来的包仍然显示Tunnel to 443;解决办法就是xposed + JustTrustMe;
Xposed框架安装
安装Xposed框架的前提是手机具有root权限,由于我用的华为荣耀V10手机在出厂时对BootLoader加了锁,因此需要先对其解锁后再root;
- 淘宝找商家帮忙获取BootLoader解锁码,解锁码是16位数字;记得当时我是花了50块钱解锁BL,对方说花100块可以直接root, 我以为解锁BL后很容易就可以root,被我断然拒绝;事后看真应该听人家的,少吃两顿饭,能省不少时间在上面;解锁后手机系统从EMUI 10.0变成EMUI 8.0了;
- 双击打开华为工具箱,点击解锁bootloader后输入16位解锁码,然后根据指引解锁华为手机;
- 解压His96X_TWRP_8.X_v2(rec).rar,双击run.bat根据里面的教程刷入第三方recovery;
- 在手机上安装XposedInstaller_3.1.5.apk,然后将xposed-v90-sdk26-arm64-beta4-test1.zip和xposed-uninstaller-20180117-arm64.zip放到内存或SD卡上;
- 进入到recovery界面(关机状态下同时按住开机键+音量上键进入,或者在手机连上电脑情况下通过华为工具箱中重启到Recovery进入),点击“安装”后选择上一步所放zip的目录刷入重启即可;
- 对于安卓8.0系统,一定要用xposed-v90-sdk26-arm64-beta4-test1这个xposed框架,其他如xposed-v90-beta3会出现刷完变砖的情况;
- 上面所提软件都归档在这里,提取码为k6ij;
JustTrustMe安装
安装完Xposed框架后,下载JustTrustMe并安装(注意该apk安装后是没有桌面图标的),安装完后进入xposed->模块,勾选即激活了,后面抓包遇到https消息就可以正常解析出来了;
安装抓包软件
手机端抓包:Packet Capture
安装Packet Capture软件就好
PC端抓包:Fiddler
要在PC端抓手机的上网请求,需要保证手机与PC处于同一局域网内,同时进行如下设置:
1. PC端设置
Fiddler -> Tools -> Options... -> HTTPS;勾选Capture HTTPS CONNECTs以及Decrypt HTTPS traffic:
另外去Connections中设置Fiddler监听端口号(保持默认8888就可以),同时勾选Allow remote computers to connect;
最后查看PC端所连WIFI地址,如下192.168.101.5:
2. 手机端设置
在手机设置->无线和网络->WLAN中,为手机所连Wifi手动添加代理,服务器主机名填PC端IP:192.168.101.5,服务器端口填Fiddler监听地址:8888;
设置好后,手机发出的请求就可以通过代理从而能够被Fiddler拦截并解析了;
FAQ
1. adb devices返回could not read ok from ADB Server
问题现象:开发者模式已打开、USB调试开关已打开情况下,使用奇兔刷机助手或者华为手机实用工具箱都连接不上手机,adb devices
则弹出如下错误
问题原因:5037端口被占用了,netstat -ano | findstr 5037
检查一下
解决办法:Ctrl + Alt + Delete打开任务管理器,找到该pid,关闭任务
2. adb devices返回unauthorized
当前还未找到办法,当前使用了奇兔刷机的TWRP来安装xposed框架;