Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder

GitHub: Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder

专为 Cloudflare DLP 取证副本设计的解码工具,支持命令行和交互式界面,简化数据泄露分析过程。

Stars: 0 | Forks: 0

# Cloudflare DLP 取证副本解码器 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/224ef2e7ee133050.svg)](https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/actions) [![Go 报告卡](https://goreportcard.com/badge/github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder)](https://goreportcard.com/report/github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder) 一个功能强大的命令行工具和交互式 TUI,用于从压缩日志文件中解码和提取 Cloudflare DLP(数据防泄漏)取证副本。 ## ✨ 功能 - 🚀 **原生 Go 实现**:单一二进制文件,无外部依赖 - 🎨 **交互式 TUI**:使用 [bubbletea](https://github.com/charmbracelet/bubbletea) 构建的终端用户界面 - 📦 **跨平台**:提供 Linux、macOS 和 Windows (amd64 & arm64) 的预编译二进制文件 - 🔄 **功能完全对等**:与原始 Shell 脚本 100% 兼容 - ✅ **测试完善**:覆盖率高的全面单元测试 - 🎯 **易于使用**:适用于脚本和自动化操作的简易 CLI ### 工作原理 1. **解压缩**:提取 `.log.gz` 文件 2. **JSON 格式化**:美观打印日志结构 3. **载荷解码**:Base64 解码载荷 4. **Gzip 处理**:自动解压缩 gzipped 载荷 5. **智能检测**:根据头部信息智能检测并处理内容 ## 📦 安装 ### 通过包管理器安装 **Homebrew (macOS 和 Linux)** ``` brew install devolvio-b-v/tap/cf-dlp-decode ``` **Winget (Windows)** ``` winget install Devolvio-B-V.cf-dlp-decode ``` ### 下载预编译二进制文件 从 [发布页面](https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/releases) 下载适用于您平台的最新版本: ``` # Linux (amd64) curl -L -o cf-dlp-decode https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/releases/latest/download/cf-dlp-decode-linux-amd64 chmod +x cf-dlp-decode sudo mv cf-dlp-decode /usr/local/bin/ # macOS (arm64) curl -L -o cf-dlp-decode https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/releases/latest/download/cf-dlp-decode-darwin-arm64 chmod +x cf-dlp-decode sudo mv cf-dlp-decode /usr/local/bin/ # Windows (amd64) # 下载 cf-dlp-decode-windows-amd64.exe 并添加至 PATH ``` ### 从源码构建 要求: - Go 1.21 或更高版本 ``` git clone https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder.git cd cloudflare-dlp-forensic-copy-decoder make build # 或直接安装 go install github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/cmd/cf-dlp-decode@latest ``` ## 🚀 使用说明 ### 交互式 TUI 模式 启动终端用户界面以获得交互式体验: ``` # 启动带文件浏览器的 TUI(无参数) cf-dlp-decode # 启动 TUI 并指定文件 cf-dlp-decode --tui captured-data.log.gz ``` 注意:现在无参数运行 `cf-dlp-decode` 默认会启动带有文件浏览器的交互式 TUI。 提供文件名(位置参数或 `--input`)即可在非交互式 CLI 模式下运行该工具。 **TUI 功能:** - **交互式文件浏览器**,支持 vim 风格导航 - **Lazygit 风格的 UI**,带有颜色编码界面 - 带滚动功能的解码内容可视化预览 - 轻松的文件导航和选择 - 导出解码后的载荷 - 所有操作的键盘快捷键 **键盘控制:** *文件浏览器模式:* - `↑↓` / `j/k` - 向上/下导航 - `Enter` - 打开目录或选择 .log.gz 文件 - `h` - 返回主目录 - `g` / `G` - 跳转到列表顶部/底部 - `q` - 退出 *预览模式:* - `↑↓` / `j/k` - 向上/下滚动 - `d` / `u` - 向下/上翻页(半页) - `g` / `G` - 跳转到顶部/底部 - `n` / `p` - 下一个/上一个载荷(当文件包含多个载荷时) - `s` / `e` - 保存/导出解码后的载荷 - `b` - 返回文件浏览器 - `q` - 退出 *错误模式:* - `t` - 使用强制文本模式重试解码(当 content-type 不受支持时) ### 非交互式 CLI 模式 适用于脚本和自动化: ``` # 基本用法 cf-dlp-decode captured-data.log.gz # 指定自定义输出路径 cf-dlp-decode --input captured-data.log.gz --output decoded.json # 为不支持的内容类型强制文本解码 cf-dlp-decode --try-text suspicious-upload.log.gz # 从 stdin 读取 cat captured-data.log.gz | cf-dlp-decode --input - # 详细输出 cf-dlp-decode --verbose captured-data.log.gz # 覆盖已有文件(标志可置于文件名之前或之后) cf-dlp-decode --overwrite captured-data.log.gz cf-dlp-decode captured-data.log.gz --overwrite ``` ## 📝 命令行选项 | 选项 | 描述 | |--------|-------------| | `--input PATH` | 输入的 .log.gz 文件(或 - 表示标准输入) | | `--output PATH` | 输出文件路径(如未指定则自动生成) | | `--tui` | 启动交互式 TUI 模式 | | `--try-text` | 即使 content-type 不受支持也尝试文本解码 | | `--overwrite` | 如果输出文件已存在则覆盖 | | `--verbose` | 启用详细输出,显示详细错误信息 | | `--help` | 显示帮助信息 | | `--version` | 显示版本信息 | ## 📂 输出文件 给定输入文件 `example.log.gz`,该工具将生成: | 文件 | 描述 | |------|-------------| | `example.log.json` | 已解压并格式化的日志,包含头部和元数据 | | `example.payload.json` | 解码后的载荷(适用于 JSON 内容类型) | | `example.payload.txt` | 解码后的载荷(适用于 text/form-data 内容类型) | ### 多载荷文件 | 文件 | 描述 | |------|-------------| | `example.1.log.json` | 载荷 1 的日志元数据 | | `example.1.payload.json` | 解码后的载荷 1 (JSON) | | `example.2.log.json` | 载荷 2 的日志元数据 | | `example.2.payload.json` | 解码后的载荷 2 (JSON) | | … | … | ## 🔍 支持的内容类型 该工具自动处理: - **JSON**: `application/json*` → `.payload.json` - **XML**: `application/xml*`, `text/xml*` → `.payload.txt` - **HTML**: `text/html*` → `.payload.txt` - **纯文本**: `text/plain*` → `.payload.txt` - **CSV**: `text/csv*`, `application/csv*` → `.payload.txt` - **JavaScript**: `application/javascript*`, `text/javascript*` → `.payload.txt` - **TypeScript**: `application/typescript*`, `text/typescript*` → `.payload.txt` - **表单数据**: `multipart/form-data*`, `application/x-www-form-urlencoded*` → `.payload.txt` - **通用文本**: 任何 `text/*` 内容类型 → `.payload.txt` ## 🛠️ 开发 ### 构建 ``` # 为当前平台构建 make build # 运行测试 make test # 运行测试并生成覆盖率报告 make test-coverage # 格式化代码 make fmt # 运行 linter make vet # 为所有平台交叉编译 make cross-build # 清理构建产物 make clean ``` ### 运行测试 ``` # 运行所有测试 go test ./... # 带覆盖率运行 go test -cover ./... # 使用竞态检测器运行 go test -race ./... ``` ### 项目结构 ``` . ├── cmd/cf-dlp-decode/ # CLI entry point ├── internal/ │ ├── decoder/ # Core decoding logic │ └── ui/ # TUI implementation ├── pkg/utils/ # Utility functions ├── legacy/ # Original shell script ├── .github/workflows/ # CI/CD workflows ├── Makefile # Build automation ├── go.mod # Go module definition └── README.md # This file ``` ## 🔄 从 Shell 脚本迁移 原始的 Shell 脚本已被移至 `legacy/` 目录,仍然可供使用。Go 实现提供: ✅ **相同行为** - 相同的解码算法和输出格式 ✅ **相同标志** - 兼容的命令行界面 ✅ **更好的性能** - 原生代码执行更快 ✅ **无依赖** - 无需 jq、gzip 或 base64 工具 ✅ **增强功能** - 交互式 TUI 模式和更好的错误处理 请参阅 [legacy/README.md](/legacy/README.md) 了解更多差异和迁移注意事项。 ### 开发指南 - 为新功能编写测试 - 确保所有测试通过 (`make test`) - 使用 `go fmt` 格式化代码 - 提交前运行 `go vet` - 根据需要更新文档 ## 📜 许可证 本项目按原样提供,用于 Cloudflare DLP 取证分析。 ## 📦 包管理器发布 本项目通过 GitHub Actions 在每次发布时自动发布到多个包管理器: - **Homebrew**:通过 GoReleaser 自动更新到 [homebrew-tap](https://github.com/Devolvio-B-V/homebrew-tap) 仓库 - **Winget**:通过 wingetcreate 自动提交(需要 fork [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs)) ## ⚠️ 免责声明 本工具仅用于合法的取证分析和安全调查目的。在分析任何数据之前,请务必确保您拥有适当的授权。 ## 🔗 链接 - **仓库**:https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder - **问题**:https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/issues - **发布**:https://github.com/Devolvio-B-V/cloudflare-dlp-forensic-copy-decoder/releases ## 🙏 致谢 - 使用 [bubbletea](https://github.com/charmbracelet/bubbletea) 构建 TUI - 灵感来源于对更好的 DLP 取证工具的需求
标签:Base64解码, Cloudflare, DLP, EVTX分析, Go语言, gzip解压, JSON格式化, MITRE ATT&CK, PB级数据处理, 交互式TUI, 代码示例, 压缩文件处理, 安全运维, 数据分析, 数据泄露预防, 文件解码, 日志处理, 日志审计, 程序破解, 终端界面