前言
在根据几篇22和23的WSA抓包文章进行尝试时遇到了问题,同时发现新版Wsa的一些实验性功能能优化抓包配置时的一些步骤,因而写下此篇以作记录。
Wsa版本:2311.40000.5.0
本文出现的项目:
MagiskOnWSALocal
MagiskTrustUserCerts
WSA-SystemControl
带Magisk的WSA
这里使用Magisk不仅是为了给WSA开root。后续的抓包中,若要对https流量解密需要给系统安装证书。传统的方法是将证书导入到security的证书文件夹,但当WSA被hyper-v加载后其就只能是一个read only system,无法导入证书。因此这里使用一个Magisk模块,其能将我们自由安装的用户证书导入到系统证书。
安装
需要稍畅通的网络
git clone https://github.com/LSPosed/MagiskOnWSALocal.git --depth 1 cd MagiskOnWSALocal/ ./scripts/run.sh
配置界面基本全默认就可以,这里若网络不好可能会有一些项下载不下来,部分项可通过在配置界面取消来缓解这个问题。
若一切配置成功可在ouput文件夹看到WSA文件夹/压缩包,将其放到你想存储WSA的位置后(注意,安装完成后移动迁移WSA文件夹需重新安装)执行文件夹里的install.ps1脚本。第一次加载较为缓慢,弹出Magisk则成功安装。
WSA工具箱与实验性功能
这里我使用这个工具箱WSA-SystemControl开源无广告,算为好用。
这个版本的WSA有三个实验性功能:
本地网络访问:建议不开。基本同22版本的高级网络。开启该选项会使WSA IP等同Windows物理主机ip,削弱隔离性。可能会导致一些端口冲突的情况发生。
Vulkan驱动程序:建议不开。相当实验性的功能,部分游戏会与该选项冲突(详见wsa 的github issue:更新至2311.40000.5.0后,在开启vulkan驱动后无法运行国服蔚蓝档案程序
共享用户文件夹:较为好用,本文会开。目前还有一些小bug,比如crt文件的不识别问题。但相信在未来他能极其方便得实现安卓和Windows的互通。
抓包配置
Magisk模块安装
将下载下来的MagiskTrustUserCerts安装包放入WSA共享的文件夹:
关闭WSA,打开Magisk
模块->从本地安装
左上角将文件夹切换至 Subsystem
右下角的Windows即是共享的文件夹
找到自己下载的模块:
bingo√
证书安装
Android Settings->安全->更多安全设置->加密与凭据->安装证书->CA证书
这里需要注意一个点:Fiddler导出cer似乎因为在windows安装上了,实际用这份导出的cer在安卓进行证书安装会出现一些问题。最终导致证书安装不上。因此这里用浏览器访问Fiddler证书端口下载证书:
firefox提前安装好:
单击几次安装。顺利的话会返回证书界面:
回到证书查看:
这时候重启系统,上文的Magisk模块会将证书从用户导入系统:
代理
代理命令:
注意:这里要取消代理请使用adb shell settings put global http_proxy :0而非adb shell settings delete global http_proxy。后者实测无法取消代理。
adb shell settings put global http_proxy wsl_core_ip:port adb shell settings put global http_proxy :0 # 取消代理
wsl_core ip可以在ipconfig中查看: