# PacketCapture

> ⚠️ **法律声明**
> PacketCapture 仅用于合法的开发和调试目的。
> - 您应仅捕获自己拥有或已获得明确授权的网络流量
> - 使用 `-redirect` 功能时，请确保您有权监控目标程序的通信
> - 请遵守目标平台的服务条款和所在国家/地区的法律法规
> - **未经授权拦截他人通信可能违反《网络安全法》等相关法律**
> - 本工具不鼓励、不支持任何非法用途

一个 HTTP/HTTPS 抓包代理工具，用于调试自己开发的 Web 应用或 API 接口的请求详情。无需安装，下载即用。

[⬇ 下载 v1.0.0](https://packetcap.pages.dev/)（6.8 MB）

## 功能

| 功能 | 免费版 | Pro 版 |
|------|--------|--------|
| HTTP/HTTPS MITM 代理 | ✅ | ✅ |
| 实时 Web 界面 | ✅ | ✅ |
| 请求详情查看 | ✅ | ✅ |
| SSE 实时推送 | ✅ | ✅ |
| CA 证书管理 | ✅ | ✅ |
| 手动设置代理抓包 | ✅ | ✅ |
| **请求数上限** | **20 条** | ❌ 无限 |
| **HAR 导出** | ❌ | ✅ |
| **接口重发调试** | ❌ | ✅ |
| **进程流量重定向 (`-redirect`)** | ❌ | ✅ |

## 快速开始

### 1. 首次运行（自动生成证书）

```bash
packetcap.exe
```

首次运行会自动生成 CA 证书到 `certs/` 目录，输出类似：

```
生成本地证书: D:\...\certs\packetcap-ca.pem
运行 install-ca.bat 安装证书到系统（不需管理员权限）
```

启动后访问 [http://localhost:8080](http://localhost:8080) 即可看到 Web 界面（端口可在 `packetcap.json` 中修改）。

### 2. 安装 CA 证书（HTTPS 解密）

运行 `install-ca.bat`（不需管理员权限）。

> 安装后即可生效，无需重启。如果浏览器之前已打开，刷新或新开连接就会使用新证书。

### 3. 配置待监控应用

**方式一（免费）：手动设置代理**

如果应用支持系统代理，将代理设为 `127.0.0.1` 端口（默认 `8080`，以实际配置为准）：
- 浏览器：安装 SwitchyOmega 扩展，配置 HTTP 代理 `127.0.0.1:8080`
- Windows：设置 → 网络 → 代理 → 手动设置代理为 `127.0.0.1:8080`
  （不抓包时记得关掉系统代理）

不支持系统代理的应用可用 Proxifier 强制重定向。

免费版最多捕获 **20 条请求**，超出后不再记录。

**方式二（Pro）：自动流量重定向**

> ⚠️ **需要 Pro 授权 + 管理员权限**，免费版不支持。

```bash
# 务必以管理员身份运行
packetcap.exe -redirect myapp.exe
```

自动劫持指定进程的全部网络流量，无需手动配置代理。
（基于 [WinDivert](https://github.com/basil00/Divert)，已打包在压缩包内）

## 配置

在 `packetcap.json` 中修改配置（与 exe 同目录），无需命令行参数即可启动：

```json
{
  "port": 8080,            // 代理和 Web 端口，改了改这里就行
  "max_requests": 1000,    // 最大请求记录数（环形缓冲，超了覆盖旧的）
  "redirect": "",          // 要劫持的进程名（留空不启用，Pro 功能）
  "redirect_tls_port": 8081,  // -redirect 时的 TLS 监听端口，被占用会自动顺延
  "license_server_url": "https://packetcap-license-gate.pages.dev"  // 验证服务地址
}
```

完整参数说明：

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `-port` | 代理和 Web 端口 | `8080` |
| `-max-requests` | 最大内存请求记录数 | `1000` |
| `-redirect` | 要劫持流量的进程名 | 空（不启用） |
| `-redirect-tls-port` | 劫持时的 TLS 监听端口（被占自动顺延） | `8081` |

> CLI 参数优先级高于配置文件。`redirect_http_port` 默认跟随 `-port`，无需手动设置。

## 获取 Pro

访问 [https://zwtaobo.pages.dev](https://zwtaobo.pages.dev) 了解如何获取 Pro 授权。

拿到兑换码后，在 Web 界面点击顶部横幅「去激活」→ 输入兑换码即可解锁全部 Pro 功能。

或联系作者直接激活，提供本机机器码即可（在「去激活」弹窗中可查看）。

## 数据隐私声明

- 所有捕获的请求数据仅存储在本地内存中，**不会上传到任何远程服务器**
- 程序停止后数据自动丢失（内存环形缓冲区）
- License 验证仅交换机器码（基于硬件信息的不可逆 hash）和授权状态，不涉及请求内容
- 不收集姓名、手机号、邮箱、IP 地址等个人身份信息

## 开源组件

| 组件 | 许可证 | 说明 |
|------|--------|------|
| [WinDivert](https://github.com/basil00/Divert) | LGPLv2.1 | Windows 数据包过滤框架 |
| [goproxy](https://github.com/elazarl/goproxy) | MIT | HTTP/HTTPS 代理库 |
| [google/uuid](https://github.com/google/uuid) | BSD | UUID 生成 |

## 最终用户许可协议（EULA）

使用本软件即表示您同意以下条款：

1. 本软件仅用于合法的开发调试目的
2. 您只能捕获自己拥有或已明确授权的网络流量
3. 禁止用于：
   a) 未经授权拦截、记录或解密他人通信
   b) 逆向工程第三方商业软件或非公开 API
   c) 窃取他人账号密码、会话 Cookie 等敏感信息
   d) 任何违反《中华人民共和国网络安全法》及其他适用法律的行为
4. 本软件按「现状」提供，作者不对因使用本软件造成的任何直接或间接损失承担责任
5. 作者保留追究违反上述条款用户法律责任的权利

## 许可证

本仓库代码仅作技术展示，**禁止在未经授权的情况下用于商业用途或重新分发**。
使用条款以最终用户许可协议（EULA）为准。

© 2026 TAOBO. All rights reserved.
