Releases: chainreactors/proton
Releases · chainreactors/proton
Release list
Proton Native 9ad650edcca6b70afb63f338009671b06108bc76
fix(ci): preserve JNA directory structure in artifact upload Each build job outputs to out/<jna-dir>/ and uploads the out/ tree. merge-multiple then reconstructs the full directory layout correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.3.2
v0.3.1
v0.3.1
proton 引擎更新
- fix(scan): 修复多行文件扫描时 opResult 合并丢失 — 后续行的 matches/extracts 不再被静默丢弃
- fix(template): Template.Execute 切换到 Request.ExecuteWithResults,正确支持文件/目录/glob 路径输入以及模板定义的 extensions/denylist 过滤
- refactor: Finding/MatchEvent 类型迁移至 utils/parsers,统一跨项目类型定义
- fix(compat): 修复 Go 1.17 构建兼容性,通过 build tag 隔离 Go 1.18+ 依赖
found 工具更新
- fix(build): macOS 构建跳过 UPX 压缩(macOS 不支持 UPX)
- fix(darwin): 修复 macOS mach_task_self() CGO 编译问题(宏包装为 C 函数)
- docs: README 更新,补充进程扫描、网络捕获、注册表扫描、baseline、zombie 模式、C FFI 等文档
- ci: goreleaser 构建后自动上传二进制到 proton release
v0.3.0
v0.3.0
proton 从文件扫描工具重构为纯匹配引擎 SDK,所有数据采集、CLI、Runner 等高级功能迁移至 found。
proton 引擎更新
Breaking Changes
- 移除
Scanner.Scan()— 不再内置目录遍历 - 移除
ProcessFile()— 替换为ReadFile()+ScanData() - 移除 CLI 入口、
pkg/runner/、sysinfo/(迁移至 found) - FFI 移除内置模板,
ProtonNewScanner改为 path-based template.Execute切换到 Scanner 后端
SDK API
| 接口 | 模式 | 用途 |
|---|---|---|
ScanData([]byte, label, group) |
一次性,按行 | 文本匹配 |
ScanBlock([]byte, label, group) |
一次性,滑动窗口 | 二进制匹配 |
NewLineWriter(label, cb) |
流式 io.WriteCloser | 持续文本流 |
NewBlockWriter(label, cb) |
流式 io.WriteCloser | 持续二进制流 |
ReadFile(path, group) |
文件读取 | 返回 []FileContent |
三层匹配管线
prefilter (bytes.Contains) → Aho-Corasick DFA → RE2 regex
FFI (C ABI)
int ProtonNewScanner(const char* templatePath);
char* ProtonScanData(int handle, const void* data, int len, const char* label);
char* ProtonScanBlock(int handle, const void* data, int len, const char* label);
void ProtonFreeScanner(int handle);
void ProtonFreeString(char* s);支持 Python/Rust/C/C++ 等任何 C FFI 语言集成。
其他改进
- perf: 用 slice 替代 fileResult map,池化读缓冲区,迭代式 AC
- perf: 内存扫描切换到
[]byteAPI,减少分配 - feat: Go 1.17 兼容性,通过 build tag 隔离 go-re2/fastwalk
- refactor: protocols/file 迁移到 proton/file
found 工具更新
新功能
- 进程扫描:
--pid/--process扫描进程内存、环境变量、命令行、FD、连接、管道 - 网络捕获:
--listen实时抓包 + BPF 过滤 + TCP 流重组 - 注册表扫描:
--registry扫描 Windows 注册表,--registry-hive扫描离线 hive 文件 - 系统级扫描:
--config/--docker/--history/--git/--coredump/--keyring/--tmpfs - 实时监控:
--clipboard剪贴板监控,--keylog击键监控 - Zombie 模式:
-o zombie提取可操作的凭据目标(JDBC/ODBC/URL) - Baseline 工作流:
-f baseline.json+--baseline增量扫描,抑制已知发现 - CI 集成:
--fail-on按严重级别退出非零 - Ad-hoc 搜索:
-e正则表达式直接搜索,类似 ripgrep - 模板管理:
--validate/-d/--update-templates - 文件收集:
--collect将匹配文件打包为 zip
改进
- 从 proton 迁移 runner、sysinfo、sys protocol 到 found
- macOS 支持 CGEventTap 击键监控
- Windows 环境变量/命令行读取增强错误处理
- 新增 37 个数据库后渗透服务模板
- 新增 CLI 密码、curl auth header、连接字符串检测模板
v0.2.0
found v0.2.0
found CLI 已从独立仓库迁入 proton,后续 proton 将改名为 found。此版本起请从本仓库获取 release。
🆕 New Features (vs found v0.1.1)
Template Management
--validate— 验证模板语法、必填字段、正则编译,支持 CI 集成(非零退出码)-d/--template-display— 按 ID 或文件路径查看模板内容--update-templates— 从 git 仓库(支持私有仓库)clone/pull 模板--template-url— 指定模板仓库 URL(自动保存到~/.config/found/config.yaml)--update-template-dir— 自定义模板安装目录- 本地模板自动发现:
~/.config/found/templates/存在时自动加载,无需-t
Extract Rules
- 新增
extract/模板分类(36 条规则),使用 nuclei file 协议格式替代旧版extract.yaml - 分类覆盖:cloud、crawl、credential、info-leak、token
🔧 Engine Improvements (proton core)
- Unified Scanner — 单次遍历多模板评估,三层过滤流水线(bytes.Contains → Aho-Corasick → RE2)
- Aho-Corasick 迁移 — 使用 chainreactors/utils/ahocorasick,支持 LeftMostLongestMatch
- 归档文件透明扫描(tar/tar.gz/zip/7z/rar)
- 扩展目录裁剪规则(node_modules、pycache、.gradle 等)
- 行号与字节偏移量追踪
📦 Architecture
- found CLI 合并到 proton,统一为单一仓库
templates/改为 Go 包template/(单数),templates/路径用于数据 submodulepkg/data/*.bin和pkg/templates.go由go generate生成,不再纳入 git 管理- CI:自动测试(push/PR)+ GoReleaser 自动发布(tag)
⬆️ Upgrade Notes
- 所有 CLI 用法不变,二进制名仍为
found - 从本仓库 release 页面下载替换即可
- 如使用
go install:go install github.com/chainreactors/proton@latest