Fiddler 怎么解密
时间: 2025-07-06 08:07:21 浏览: 6
使用 **Fiddler** 解密 HTTPS 流量是逆向分析 App 接口行为的重要手段。如果你正在尝试抓取 Android App 的 HTTPS 请求,并希望看到明文数据(例如 JSON、XML 或其他格式),你需要配置 Fiddler 作为中间人代理(MITM),并安装其证书到设备上。
---
## ✅ 使用 Fiddler 解密 HTTPS 流量的完整步骤
---
### 🧩 第一步:在 PC 上安装并配置 Fiddler
1. 下载安装 [Telerik Fiddler](https://www.telerik.com/download/fiddler)(免费版本即可)
2. 启动 Fiddler
3. 打开菜单:
- `Tools` > `Options`
- 在 `HTTPS` 标签下:
- 勾选 `Decrypt HTTPS traffic`
- 确保信任了 Fiddler 的根证书(会自动提示)
---
### 📶 第二步:设置 Fiddler 允许远程连接
默认情况下,Fiddler 只监听本地 (`localhost`) 的流量。为了让手机通过 WiFi 连接 Fiddler 抓包:
1. 打开菜单:
- `Tools` > `Options` > `Connections`
2. 勾选 `Allow remote computers to connect`
3. 记录下你的电脑 IP 地址(局域网 IP):
- Windows: `ipconfig`
- Mac/Linux: `ifconfig`
---
### 📱 第三步:配置手机连接 Fiddler
#### 方法一:手动设置代理(推荐)
1. 手机连接与电脑相同的 WiFi
2. 设置手机 Wi-Fi 属性中的代理为:
- 主机名:你电脑的局域网 IP(如 `192.168.1.100`)
- 端口:默认是 `8888`(Fiddler 默认端口)
#### 方法二:使用二维码或工具辅助(可选)
你可以使用一些工具(如 `mitm-proxy`, `Charles Proxy`)生成二维码供手机扫码连接。
---
### 🔐 第四步:安装 Fiddler 证书到手机
由于 HTTPS 是加密的,Fiddler 要解密需要手机信任它的证书。
1. 在手机浏览器中访问 `http://[your-computer-ip]:8888`(如:`http://192.168.1.100:8888`)
2. 页面会显示 "FiddlerRoot certificate",点击下载证书
3. 安装证书(Android 7+ 需要放在“受信任的凭据”- “用户”中)
4. 重启 App 并查看 Fiddler 中是否有 HTTPS 请求
---
### 📊 第五步:查看解密后的请求和响应内容
1. 在 Fiddler 左侧会显示所有 HTTP/HTTPS 请求
2. 双击任意一个请求,在右侧可以查看:
- 请求头 (`Headers`)
- 请求体 (`TextView` / `JSONView`)
- 响应内容(同样支持 JSON/XML 自动解析)
---
### 🔍 示例:App 发送的加密请求如何被识别?
如果你发现 App 请求返回的是加密数据(如你之前看到的 hex 数据块),但你在 Fiddler 中看到的是明文(例如 JSON),说明加密是在 App 内部进行的,而网络传输是明文(由 Fiddler 解密后展示)。
如果仍然看到加密数据,说明 App 使用了以下技术之一:
| 情况 | 说明 |
|------|------|
| SSL Pinning | App 强制验证服务端证书,不信任系统证书(包括 Fiddler) |
| 二次加密 | App 对 body 再次加密(如 AES/XOR),即使 HTTPS 解密成功也无法直接阅读 |
| 自定义协议 | App 不使用标准 HTTP 协议通信(如 WebSocket、TCP Socket) |
---
### 💡 补充技巧
#### 1. 查看原始二进制响应(如 protobuf)
在 Fiddler 中:
- 选择一个响应
- 右键 → `Save` → `Response` → `Save as Raw Body (no byte order mark)`
- 使用 Python 或 protoscope 分析这个文件
#### 2. 使用 FiddlerScript 修改请求/响应(高级)
你可以编写 `OnBeforeRequest` 和 `OnBeforeResponse` 来拦截、修改或记录特定请求。
---
## ✅ 总结流程图
```
App HTTPS 请求
↓
Fiddler(MITM 解密)
↓
查看明文(JSON / XML / Protobuf)
↓
若仍为加密数据 → 说明 App 有本地加密逻辑(需逆向找 key)
```
---
###
阅读全文
相关推荐
















