Android在WSA安卓子系统中进行新实验性功能试用与抓包(2311.4.5.0)

前言

在根据几篇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中查看:
在这里插入图片描述
在这里插入图片描述