Proxifier 介绍
Proxifier 是一款功能强大的网络代理工具,它可以让你将网络应用程序通过代理服务器进行连接。它提供了一个简单而灵活的方式,让你能够将任何应用程序的网络流量路由到指定的代理服务器上,从而实现匿名浏览、绕过网络封锁、访问受限网站等功能。
Proxifier 的工作原理是通过修改操作系统的网络设置,将应用程序的网络连接引导到代理服务器上。它支持多种代理协议,包括HTTP、HTTPS、SOCKS v4和SOCKS v5,可以与各种代理服务器兼容。此外,Proxifier 还支持对代理服务器进行负载均衡,以提高网络连接的速度和稳定性。
Proxifier 具有以下一些主要特点和功能:
YAK
-
应用程序透明代理:Proxifier 可以将选定的应用程序的网络连接路由到代理服务器上,应用程序无需任何修改即可通过代理服务器连接网络。
-
灵活的代理规则:你可以根据自己的需求设置代理规则,例如,可以根据目标主机、端口号、应用程序名称等条件进行灵活的配置。
-
DNS 解析代理:Proxifier 还支持通过代理服务器解析 DNS 请求,这有助于保护隐私并绕过某些网络限制。
-
代理链:Proxifier 支持将多个代理服务器链接起来,形成代理链,以增加网络连接的安全性和隐私性。
-
日志记录和统计:Proxifier 可以记录网络连接的日志信息,并提供统计数据,帮助你了解应用程序的网络使用情况。
Proxifier proxy server 配置
1、启动 Yakit MITM:
使用前请先安装证书,参考 Yakit 证书安装。
点击劫持启动。
2、Proxifier 添加 proxy server:
添加完成后,点击 OK 保存。
3、手动添加规则
Windows Rules配置
Windows 下 Proxifier 添加 Proxification Rules:
Add 添加一条规则,填写如下:
注意 Applications 填写 wechatappex.exe
, Action 选择上一步添加的 proxy server, 点击 OK 保存。
Mac OS Rules配置
Mac 下 Proxifier 添加 Proxification Rules:
Add 添加一条规则,通过+
按钮点击:
通过 command+shift+G 打开 /Applications/WeChat.app/Contents/MacOS
路径
选择 Mini Program.app
注意: 新版 Mac 微信小程序的可执行路径发生了变化,可以尝试此路径
/Applications/WeChat.app/Contents/MacOS/WeChatAppEx.app/Contents/Frameworks/WeChatAppEx Framework.framework/Versions/C/Helpers/WeChatAppEx Helper.app/Contents/MacOS/WeChatAppEx Helper
Proxifier 会自动添加完毕。
或者直接复制 "Mini Program.app"; "Mini Program"; com.tencent.xinWeChat.MiniProgram
到 Applications 中。
注意: 新版 Mac 微信小程序可以使用 “WeChatAppEx Helper.app”; “WeChatAppEx Helper”; com.tencent.xinWeChat.WeChatAppEx.helper 作为应用程序名称。
Action 选择上一步中添加的 proxy server, 点击 OK 保存。
4、开始抓包:
使用 PC 端微信打开需要的小程序,然后在 Yakit 中查看抓包数据。
自动导入规则
Profile 导入
为了方便配置 Proxifier 代理小程序,我们提供了一个 profile,可以通过导入 profile 文件,实现对 微信小程序的代理,profile 规则中内置了 Windows 和 Mac OS 所需的微信小程序规则,如下所示:
同时也内置了一个 Proxy Server 地址,默认Address 为 127.0.0.1 ,端口 8083,类型为 HTTPS,如果你 MITM 监听的端口不为 8083,请修改为 Yakit MITM 监听的端口。
导入方式
Windows 和 Mac 的导入方式一致,下载 Yakit-WeChatAppEx.ppx 后,选择 File -> Import Profile…
点击后可能会出现如下提示,让你保存当前的规则配置,如果你有其他的一些规则配置,可以点击取消后保存你之前的规则配置
这里我们没有需要保存的规则配置,直接点击是,选择下载的 Yakit-WeChatAppEx.ppx 文件
发现如下的加载成功即可
随后即可对小程序进行抓包
常见错误排查
在 Yakit v1.3.0 添加Windows 自定义安装路径之后,我们需要对 Yakit 的证书进行重新安装,并且证书安装完成后,需要重启微信。
证书最常见的错误就是,Yakit 证书安装错误,表现为打开小程序后,小程序显示网络错误,或者卡在加载界面,此时 Yakit MITM 也没有相应的流量。
网络错误、网络异常的情况
一直显示加载中的情况
利用yakit进行app抓包
步骤 1: 配置 yakit
在Yakit MITM界面进行配置代理监听的配置,然后点击劫持启动。
步骤 2: 设置手机/模拟器的代理
App的抓包可以用手机或者手机模拟器,操作是相同的,这里以夜神模拟器为例进行演示
注意:要确保运行 Yakit 的计算机和手机或者模拟器是处于同一网络中的,以便模能够连接到 Yakit 的代理。
-
启动夜神 模拟器:
-
配置网络代理:
-
在模拟器中,打开设置 > WLAN>长按wiredSSID >修改网络
-
在“代理主机名”处输入你电脑的局域网 IP 地址,端口填写为 9999(或你在 Yakit 中设置的端口)。
-
保存设置。
步骤 3: 安装 Yakit 的 CA 证书
关于Android 7.0 以下的证书安装过于简单,网上有太多相关文章,这里不过多的赘述,下面主要介绍Android 7.0以上的证书安装。为了大家便于理解,这里我们先对安卓的证书先简单的做一个介绍。
Android 设备上的 CA 证书和其他系统中一样分为两种,分别是系统证书和用户证书,两者的区别如下:
系统 CA 证书
-
内置证书:系统 CA 证书是 Android 系统内置的,由设备制造商或操作系统开发者预装。这些证书通常来源于全球公认的证书颁发机构(CA)。
-
存储位置:如你所述,系统 CA 证书存放在
/etc/security/cacerts/
目录下,文件名基于证书的 subjectDN 的 MD5 值。 -
安全性:由于系统 CA 证书是预装的,它们通常被视为更加安全和可信。应用程序和系统服务依赖这些证书来建立安全的 HTTPS 连接。
-
管理权限:修改系统 CA 证书需要 Root 权限,这是因为改动系统证书可能会影响到设备的整体安全性和稳定性。
用户 CA 证书
-
用户安装:用户 CA 证书由设备的用户手动安装。这对于某些特定的使用场景非常有用,比如开发和测试,或者连接需要特定 CA 证书的企业网络。
-
存储和管理:用户 CA 证书可以通过设备的设置菜单安装,通常在
设置 → 系统安全 → 加密与凭据 → 从 SD 卡安装
下。安装后,这些证书会显示在设置 → 系统安全 → 加密与凭据 → 信任的凭据
下的“用户”部分。
但是从 Android 7.0 (Nougat) 开始,Google 引入了新的安全增强功能,系统不再信任用户安装的 CA 证书对于所有应用的 HTTPS 流量。为了让 Yakit 能够解密和捕获 HTTPS 流量,我们需要绕过限制,让 APP “信任” Yakit 的 CA 证书。绕过的方式有很多种,这里我们介绍较为简单快捷的一种方式:将Yakit的证书导入在系统证书内。
方式一、机内手动安装证书
1.在Yakit中下载证书,并重命名为yakit.cer
2.然后将证书复制到模拟器中(直接拖动到模拟器中即可),证书会出现在/storage/emulated/0/Pictures目录中
3.进入模拟器中设置-安全-从SD卡安装证书,选择证书导入,然后设置证书名称。第一次添加证书时会要求设置密码。
4.打开文件管理器(记得开启Root权限,模拟器右上角设置中开启)
进入根目录,然后进入/data/misc/user/0/cacerts-added 复制证书
将证书粘贴到 /etc/security/cacerts 目录下
点开属性,并赋予权限
5.访问app或网站即可抓到HTTPS的数据包
另外,对于其他无法手动安装证书的模拟器,也可以通过第二种方式,原理是一样的。
方式二、adb上传证书
1.直接在Yakit下载证书,然后利用openssl(windows需要自行下载,方法见:)计算证书hash值
openssl x509 -inform PEM -subject_hash_old -in yakit证书.crt.pem
2.重命名“yakit证书.crt.pem”文件为38555061.0 (图中计算出的hash值)
3.使用adb上传证书至模拟器
(1)找到夜神模拟器的NOX目录下的bin目录,并将重命名之后的证书38555061.0复制到这个文件夹
(2)在这个目录下打开cmd命令行
(3)adb.exe devices
命令查看设备的连接情况,如图就是正常
(4)进行上传文件 adb.exe push 38555061.0 /sdcard/
(5)以读写方式(rw)重新挂载/分区
adb.exe shell
mount -o remount,rw /system
(6)将证书复制到系统安全目录并给读写权限,然后reboot重启模拟器即可
cp /sdcard/38555061.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/38555061.0
reboot
(7)在模拟器中设置-安全-信任的凭据中确认证书是否添加
最后
本文较长,为了更好地让大家理解并学习,我们已在b站同步上传了视频,师傅们可以观看配套教程,使用Yakit上手实战。点击文末阅读原文,观看视频。
END
YAK官方资源
Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ
原文始发于微信公众号(Yak Project):利用yakit进行小程序和app抓包