【保姆级教程】 (九)全网最强HTTP+Fiddler抓包实战超级全面图文教程,利用Fiddler实现在pc微信端测试,如何使用Fiddler抓取APP接口和微信授权网页源代码。
本文介绍了如何利用Fiddler在PC版微信中抓取内置浏览器的数据包。首先,从官方网站下载并安装Fiddler,然后配置Fiddler以捕获HTTPS流量,包括安装和信任证书。完成配置后,通过访问淘宝网站验证设置成功。最后,登录微信并打开公众号,成功抓取到微信内置浏览器的网络请求,实现了PC端的微信网页抓包测试。
利用 Fiddler 抓取 PC 微信端数据并获取 API 信息需解决微信的证书固定(Certificate Pinning)和代理规避问题。以下是详细操作流程:
🔧 一、基础环境配置
步骤 1:Fiddler 设置
-
启用 HTTPS 解密
Tools > Options > HTTPS
- ✅
Capture HTTPS CONNECTs
- ✅
Decrypt HTTPS traffic
- ✅
Ignore server certificate errors
- ✅
- Actions > Trust Root Certificate(安装证书)
-
允许远程连接
Connections
标签 → ✅Allow remote computers to connect
- 默认端口
8888
(若冲突可修改)
步骤 2:强制微信流量走代理
微信默认绕过系统代理,需强制其流量转发至 Fiddler:
-
方案一:使用 Proxifier(推荐)
- 下载 Proxifier(试用版30天)
- 配置规则:
- 效果:所有
WeChat.exe
流量强制转发到 Fiddler
-
方案二:Windows 全局代理(简易但影响其他应用)
Settings > Network & Internet > Proxy
→ 手动设置代理- 地址:
127.0.0.1
- 端口:
8888
- 地址:
⚙ 二、绕过微信证书固定(关键!)
微信 3.9+ 版本启用严格证书校验,需修改内存绕过验证:
工具准备
- Cheat Engine 7.5+(内存修改工具)
- x64dbg(调试器,备用方案)
操作流程(以微信 3.9.8 为例)
-
定位证书验证函数
- 用 Cheat Engine 附加
WeChat.exe
进程 - 搜索字符串:
"certutil.dll"
→ 找到函数CertVerifyCertificateChainPolicy
- 地址示例:
0x12345678
(不同版本地址不同)
- 用 Cheat Engine 附加
-
修改函数返回值
; 原始指令(验证失败返回0) mov eax, 0 ret ; 修改为(强制返回1,即验证成功) mov eax, 1 ret
- 在 Cheat Engine 中右键该地址 →
Browse this memory region
- 修改机器码:
B8 01 00 00 00 C3
(对应mov eax,1; ret
)
- 在 Cheat Engine 中右键该地址 →
-
验证效果
重启微信 → 发送消息 → 在 Fiddler 中查看weixin.qq.com
的 HTTPS 请求是否明文显示
⚠️ 注意:微信更新后需重新定位函数地址,可关注 GitHub 脚本仓库 获取最新偏移量
🔍 三、抓取关键 API 数据
典型微信 API 路径(Fiddler 过滤规则)
# 在 Fiddler 的 Filter 标签设置:
REGEX:.*(weixin\.qq\.com|wechat\.com|wx\.qq\.com).*
常见 API 示例:
功能 | API 路径 | 数据说明 |
---|---|---|
登录状态 | /cgi-bin/mmwebwx-bin/webwxstatus | 包含登录二维码 URL |
消息发送 | /cgi-bin/mmwebwx-bin/webwxsendmsg | 消息内容、接收者 ID |
联系人列表 | /cgi-bin/mmwebwx-bin/webwxgetcontact | 好友/群聊列表(JSON 格式) |
文件传输 | /cgi-bin/mmwebwx-bin/webwxuploadmedia | 文件二进制流 + 元数据 |
快速定位目标 API
- 在 Fiddler 会话列表按
Ctrl+F
搜索关键词:webwx
(微信网页版协议)file
(文件操作)login
(登录相关)
- 右键会话 →
Copy > Just URL
获取完整 API 地址
🛠 四、解密与解析技巧
1. 解析 Protobuf 数据
微信部分 API 使用 Protocol Buffers 编码:
- 安装 Fiddler 插件:
- 操作流程:
- 捕获含
Content-Type: application/protobuf
的请求 - 右键会话 →
Decode Selected Sessions
→ 选择.proto
定义文件 - 自动解析为 JSON 格式
- 捕获含
2. 解密数据库文件(可选)
获取聊天记录数据库 MSG.db
:
- 定位文件路径:
C:\Users\[用户名]\Documents\WeChat Files\[微信号]\Msg\
- 使用 DB Browser for SQLite + 微信密钥 解密
- 密钥获取工具:WeChatKeyExtract
⚠️ 五、注意事项
- 法律风险
- 仅限个人账号测试,抓取他人数据违法
- 勿逆向敏感接口(如支付、实名认证)
- 版本兼容性
- 微信 3.9.5+ 版本需更新 Cheat Engine 脚本
- 推荐使用微信历史版本 3.7.6
- 防封号建议
- 关闭 Fiddler 后再登录微信主账号
- 避免高频抓取(每小时请求 > 1000 次易触发风控)
💡 六、自动化扩展方案
// 示例:Fiddler Script 自动提取消息 API
static function OnBeforeResponse(oSession: Session) {
if (oSession.uriContains("webwxsendmsg")) {
// 1. 保存原始请求和响应
var reqFile = "C:\\logs\\" + oSession.id + "_request.txt";
var resFile = "C:\\logs\\" + oSession.id + "_response.txt";
oSession.SaveRequestBody(reqFile);
oSession.SaveResponseBody(resFile);
// 2. 提取关键字段(JSON 示例)
var jsonBody = Fiddler.WebFormats.JSON.JsonDecode(
oSession.GetResponseBodyAsString()
);
var msgId = jsonBody.JSONObject["MsgID"];
FiddlerObject.log("消息已发送,ID:" + msgId);
}
}
通过以上步骤,您可完整捕获 PC 微信的:
- 登录流程(二维码生成、Token 获取)
- 消息收发(文本/图片/文件)
- 联系人同步(好友列表、群成员)
- 小程序/公众号交互(HTTP API 调用)
建议结合 Fiddler Everywhere 实现跨平台抓包(支持 macOS 微信),其内置的 Auto Decrypt 功能可简化 HTTPS 解析流程。
利用Fiddler实现在pc微信端测试
我们在一些工作中,需要用到微信内置的浏览器,但是在手机端操作的话会产生一系列不必要的麻烦,偶然间突发奇想,既然pc段微信内置的也是同样的浏览器内核,那么我们肯定可以在pc端完成抓包分析这一操作
首先我们需要下载并安装fiddler
下载
首先我们进入Fiddler的官网进行下载,点击进去之后会自动开始下载
安装
将下载到的安装包,打开
然后按照正常软件的安装方法安装就可以了
安装成功
配置
Fidder默认是不会抓取HTTPS的数据包,这个时候就需要我们对Fidder进行配置
安装证书
首先打开Tools–>Options
然后打开HTTPS将这几个全部打勾
打开旁边的Acions 点击Trust Root Certificate
信任该证书
安装该证书
然后重启Fidder。
验证
我们先打开Fidder,然后在打开淘宝网站,然后就会发现我们Fidder左侧出现HTTPS协议的数据包
这些做完之后,我们将自己的微信登录上,然后打开公众号,呼出微信自带的浏览器。
然后我们会发现在微信内置中请求的数据,我们在Fidder中一样可以抓取到。
如何使用Fiddler抓取APP接口和微信授权网页源代码
Fiddler,一个抓包神器,不仅可以通过手机访问APP抓取接口甚至一些数据,还可以抓取微信授权网页的代码。
下载安装
-
下载地址(官网): https://www.telerik.com/download/fiddler
-
官网填完账号等信息下载,然后安装,打开。
设置当前电脑的代理
-
打开“Tools”,选中“Options”,先找到“HTTPS”。
-
勾选以下选项,如果是默认可以不管。
- 再打开“Connections”,设置监听端口号,比如8888,同样勾选以下的选项,到这里电脑设置就可以了。
手机Wifi连接的网络修改
-
手机和电脑的网络必须在同一局域网内,电脑cmd输入“ipconfig”,记下局域网IP。
-
手机找到连接的wifi,点击修改网络。
-
可能要勾选高级选项,代理设置为“手动”,服务器主机名就是电脑的局域网IP,服务端口号是前面Fiddler里设置的监听端口。
抓取HTTP和微信授权网页
-
手机设置完后就可以用手机打开任意的APP或者微信里的授权网页(别人公众号里的应用)。
-
微信刚一访问,Fiddler就可以在左侧看到各种请求,找到其中一个请求,点击“SyntaxView”,这里就是网页源代码,可能是乱码。
- 点击“Transformer”,“HTTP compression”, 勾选“Chunked Transfer-Encoding”,再返回语法视图,就可以查看。
- 找App接口,点击“json”或“xml”可以查看接口返回的数据,或者抓取地址通过POSTman,测试一下。
安装证书查看HTTPS接口
电脑浏览器或者手机安装Fiddler证书后可以查看HTTPS的请求信息
- 浏览器输入当前电脑局域网IP,加Fiddler监听端口。
- 点击“certficate”下载到本地,然后导入在电脑浏览器或者手机,手机按提示安装就可以,可能需要先设置锁屏密码。
- 手机安装了该证书继续打开一些其他APP,然后再用Fiddler查看请求。
- 可以查看请求方式和请求参数,图片等等
使用 Fiddler 抓取 APP 接口与微信授权网页源代码
以下是详细的操作指南,涵盖 APP 接口抓取和微信授权网页源代码获取两个场景:
一、抓取 APP 接口数据
基础配置步骤
-
Fiddler 设置
- 打开 Fiddler → Tools → Options → HTTPS
- ✅ Capture HTTPS CONNECTs
- ✅ Decrypt HTTPS traffic
- ✅ Ignore server certificate errors
- Actions → Trust Root Certificate (安装证书)
- Connections 标签 → ✅ Allow remote computers to connect (默认端口 8888)
- 打开 Fiddler → Tools → Options → HTTPS
-
获取 PC IP 地址
- 命令行输入
ipconfig
→ 查看 IPv4 地址 (如192.168.1.100
) - Fiddler 右上角会显示 “Online: 192.168.1.100:8888”
- 命令行输入
手机端配置
-
iOS 设备
-
Android 设备
- 设置 → WLAN → 长按当前网络 → 修改网络
- 高级选项 → 代理 → 手动
- 主机名:PC IP,端口:8888
安装证书
- 手机浏览器访问:
http://<PC IP>:8888
- 下载并安装 FiddlerRoot 证书
- iOS:设置 → 通用 → VPN与设备管理 → 安装描述文件 → 信任证书
- Android:设置 → 安全 → 加密与凭据 → 安装证书 → CA证书
抓取 APP 接口
- 打开目标 APP 进行操作
- 在 Fiddler 中过滤 APP 请求:
- 右侧 Filters 标签 → 勾选 Use Filters
- Hosts 区域 → 选择 “Show only the following Hosts”
- 输入 APP 的域名 (如
*.api.appname.com
)
- 分析接口:
- 右键请求 → Inspect → 查看 Headers 和 WebView 标签
- JSON 接口:使用 JSON 选项卡格式化数据
二、抓取微信授权网页源代码
准备工作
-
PC 微信代理设置
- 下载 Proxifier:https://www.proxifier.com/
- 配置规则:
-
绕过微信证书固定
- 使用 Cheat Engine 修改内存:
- 启动微信和 Cheat Engine
- 附加到 WeChat.exe 进程
- 搜索字符串
"certutil.dll"
- 找到
CertVerifyCertificateChainPolicy
函数 - 修改机器码为
B8 01 00 00 00 C3
(mov eax,1; ret)
- 使用 Cheat Engine 修改内存:
抓取授权网页流程
-
触发微信授权
- 在测试网站点击 “微信登录” 按钮
- 或直接访问授权 URL:
https://open.weixin.qq.com/connect/oauth2/authorize? appid=APPID& redirect_uri=REDIRECT_URI& response_type=code& scope=snsapi_userinfo& state=STATE#wechat_redirect
-
在 Fiddler 中定位请求
- 使用过滤器:
open.weixin.qq.com
- 查找关键路径:
/connect/oauth2/authorize /connect/qrconnect
- 使用过滤器:
-
获取网页源代码
- 找到状态码为 200 的响应
- 在 Inspectors → WebView 标签查看完整 HTML
- 右键 → Save → Response → Response Body 保存 HTML 文件
高级技巧:自动保存源代码
// Fiddler Script: 自动保存微信授权页面
static function OnBeforeResponse(oSession: Session) {
if (oSession.uriContains("oauth2/authorize") ||
oSession.uriContains("qrconnect")) {
// 获取完整URL
var fullUrl = oSession.fullUrl;
// 生成文件名
var fileName = "C:\\WeChatAuth\\" +
oSession.id + "_" +
oSession.oRequest.headers["Host"] + ".html";
// 保存响应体
oSession.SaveResponseBody(fileName);
// 日志记录
FiddlerObject.log("已保存授权页面: " + fullUrl);
}
}
三、常见问题解决
问题 | 解决方案 |
---|---|
HTTPS 网站显示证书错误 | 重新安装 Fiddler 根证书 → 重启浏览器 |
APP 无法联网 | 关闭防火墙 → 检查代理设置 → 重启 Fiddler |
微信不显示授权页面 | 清除微信缓存 → 使用无痕模式 |
抓不到授权重定向 | 启用 Fiddler 的 “Stream” 模式 (底部工具栏) |
数据乱码 | 在 Headers 添加:Accept-Encoding: identity |
四、安全与法律须知
-
仅限授权测试
- 只抓取自己开发或拥有权限的 APP/网站
- 避免抓取用户敏感数据
-
微信开发规范
- 使用测试公众号 (未认证公众号有基础权限)
- 在微信开放平台配置授权域名
-
调试后清理
提示:对于复杂的 SPA 应用,建议配合 Chrome DevTools 的远程调试功能(通过
chrome://inspect
)获取完整前端代码。
通过以上方法,可以高效抓取 APP 接口数据并获取微信授权网页源代码,为开发和调试工作提供强大支持。