mrxvaau/flowrec
GitHub: mrxvaau/flowrec
基于 mitmproxy 的本地 HTTPS 代理记录与 API 流量分析工具,通过自动认证检测、意图分类、Token 生命周期追踪和依赖图构建,实现 API 调用链路的可视化分析与一键导出。
Stars: 0 | Forks: 0
# flowrec — 本地 HTTPS API 流量记录与分析器
## 截图
### 主菜单
### 流量浏览器
### 会话摘要
## 功能
| 组件 | 功能说明 |
|---|---|
| **代理层** | 基于 mitmproxy 的 HTTPS 拦截,支持 HTTP/1.1 + HTTP/2 |
| **过滤引擎** | 过滤掉静态资源、分析打点;保留 API/XHR 流量 |
| **认证检测器** | 识别 Bearer、Cookie、CSRF、Basic、API-Key 认证方式 |
| **Token 追踪器** | 跨会话追踪 token 的产生 → 使用 → 刷新 |
| **意图分类器** | 为每个请求打上标签(LOGIN、CHAT_SEND、TOKEN_REFRESH…) |
| **流量图** | 根据共享的 token / 会话 ID 构建依赖 DAG |
| **导出引擎** | 生成 `curl` 命令和 Python `requests` 代码片段 |
| **平面文件存储** | 所有数据均以 `.json` + 每个流量的 `.md` 文件存储 — 无需数据库 |
| **交互式 TUI** | 基于 Rich 驱动的完整菜单式终端 UI |
## 安装说明
```
git clone https://github.com/mrxvaau/flowrec
cd flowrec
pip install -r requirements.txt
```
## 快速入门
```
python run.py
```
无需任何参数 — 直接启动交互式 TUI 菜单。
### 或直接使用 CLI
```
python run.py start --port 8888
python run.py list
python run.py show
python run.py graph
python run.py tokens
python run.py summary
```
## 设置 — MITM 证书(一次性)
1. 启动 flowrec 并将浏览器代理设置为 `127.0.0.1:8888`
2. 在配置好代理的浏览器中访问 `http://mitm.it`
3. 为您的操作系统下载并安装证书
```
Windows: Double-click .cer → Local Machine → Trusted Root CAs
macOS: Keychain Access → Import → Set Trust to Always
Linux: sudo cp cert.pem /usr/local/share/ca-certificates/ && update-ca-certificates
```
## TUI 菜单选项
| 按键 | 操作 |
|---|---|
| `1` | 开始捕获 — 提示输入端口,显示实时彩色流 |
| `2` | 浏览流量 — 按意图/方法/主机/状态过滤,检查详情 |
| `3` | 流量依赖图 — 显示 token 链的 ASCII DAG |
| `4` | Token 生命周期 — 所有被追踪的 token 及其刷新事件检测 |
| `5` | 会话摘要 — 按意图、方法、状态、认证分类统计 |
| `6` | 导出所有流量为 `.md` 或 `.json` 格式 |
| `7` | 清除所有数据 |
| `8` | 证书设置说明 |
## 意图标签
| 意图 | 触发条件 |
|---|---|
| `LOGIN` | 路径 `/login` 或包含字段 `{email, password}` |
| `TOKEN_REFRESH` | 路径 `/refresh` 或包含字段 `{grant_type, refresh_token}` |
| `CHAT_SEND` | 路径 `/chat` + POST,或包含字段 `{message}` |
| `AI_COMPLETION` | 路径 `/completions` + 包含字段 `{prompt}` |
| `GRAPHQL` | 路径 `/graphql` + POST |
| `PROFILE_GET` | 路径 `/me`、`/profile` + GET |
| `FILE_UPLOAD` | 路径 `/upload` 或包含字段 `{file}` |
| `HEALTHCHECK` | 路径 `/ping`、`/health` |
| `DATA_FETCH` | GET 请求的默认回退 |
| `DATA_POST` | POST 请求的默认回退 |
## 数据存储
所有数据存放在 `flowrec/data/` 目录下 — 无需数据库:
```
data/
├── flows.json ← index of all flows
├── tokens.json ← tracked tokens
├── graph.json ← computed dependency graph
├── session.md ← human-readable session summary
├── export/ ← bulk exports land here
└── flows/
├── abc12345.md ← per-flow markdown
└── ...
```
## 架构
```
flowrec/
├── run.py ← entry point (TUI or CLI)
├── tui.py ← interactive terminal UI
├── proxy/
│ └── interceptor.py ← mitmproxy addon
├── core/
│ ├── filter.py ← request filtering rules
│ ├── parser.py ← body decoding, JSON utils
│ ├── auth.py ← auth detection
│ ├── token_tracker.py ← token lifecycle
│ ├── classifier.py ← intent classification
│ ├── flow_builder.py ← dependency graph
│ └── exporter.py ← curl + Python export
├── db/
│ └── models.py ← FlowRecord, TokenRecord, Store
└── cli/
└── commands.py ← CLI interface
```
## 环境要求
```
mitmproxy>=10.0.0
brotli>=1.0.9
rich>=13.0.0
```
## 作者
**mrxvaau** — [github.com/mrxvaau](https://github.com/mrxvaau) · [mrxvaau.github.io](https://mrxvaau.github.io)
## 许可证
MIT
### 流量浏览器
### 会话摘要
## 功能
| 组件 | 功能说明 |
|---|---|
| **代理层** | 基于 mitmproxy 的 HTTPS 拦截,支持 HTTP/1.1 + HTTP/2 |
| **过滤引擎** | 过滤掉静态资源、分析打点;保留 API/XHR 流量 |
| **认证检测器** | 识别 Bearer、Cookie、CSRF、Basic、API-Key 认证方式 |
| **Token 追踪器** | 跨会话追踪 token 的产生 → 使用 → 刷新 |
| **意图分类器** | 为每个请求打上标签(LOGIN、CHAT_SEND、TOKEN_REFRESH…) |
| **流量图** | 根据共享的 token / 会话 ID 构建依赖 DAG |
| **导出引擎** | 生成 `curl` 命令和 Python `requests` 代码片段 |
| **平面文件存储** | 所有数据均以 `.json` + 每个流量的 `.md` 文件存储 — 无需数据库 |
| **交互式 TUI** | 基于 Rich 驱动的完整菜单式终端 UI |
## 安装说明
```
git clone https://github.com/mrxvaau/flowrec
cd flowrec
pip install -r requirements.txt
```
## 快速入门
```
python run.py
```
无需任何参数 — 直接启动交互式 TUI 菜单。
### 或直接使用 CLI
```
python run.py start --port 8888
python run.py list
python run.py show 标签:API流量分析, API调试, DNS枚举, Elastic Stack, HTTP/HTTPS抓包, HTTPS代理, mitmproxy, Python, TUI工具, 中间人代理, 代码示例, 令牌追踪, 依赖图分析, 威胁情报, 开发者工具, 态势感知, 意图分类, 数据分析, 无后门, 流量录制, 流量重放, 网络安全工具, 网络拦截, 脚本生成, 身份验证检测, 逆向工具, 防御绕过