uky007/PETriage
GitHub: uky007/PETriage
一款基于Rust构建的跨平台PE文件静态分析工具,专为恶意软件快速分流(triage)场景设计,帮助安全分析人员在任意操作系统上高效完成可疑样本的初步评估。
Stars: 4 | Forks: 0
# PETriage
[](https://crates.io/crates/petriage)
[](https://docs.rs/petriage)
[](https://github.com/uky007/PETriage)
[](https://github.com/uky007/PETriage/tags)
一款用于恶意软件快速分类的快速、跨平台 PE (Portable Executable) 表面分析工具,使用 Rust 编写。
专为需要在 Linux、macOS 和 Windows 上进行实际 PE 快速分类而不依赖仅限 Windows 工作流的分析人员而设计。
前身为 `readpe`(为避免与现有工具发生命名冲突而更名)。
## 概念
- **仅限静态分析** -- 绝不加载或执行 PE。安全适用于恶意软件分类。
- **CLI 优先** -- 轻量级默认工作流,适合批量分析和自动化。
- **可组合** -- JSON/NDJSON 输出,可通过管道传递给 `jq`、SIEM 和脚本管道。
- **离线运行** -- 无网络调用。适用于完全隔离的网络环境。
## 接口
| 接口 | 构建 | 描述 |
|-----------|-------|-------------|
| **CLI** | `cargo build --release` | 用于 PE 分类的默认工作流、结构化输出、异常检测和批量自动化。 |
| **TUI** | `cargo build --release --features tui` | 带有 PE 区域导航的交互式十六进制查看器。 |
| **GUI** | `cargo build --release --features gui` | 选项卡式分析、拖放操作、导入/字符串过滤器、熵值颜色编码、PE 头编辑器、附加数据切出/剥离。 |
## 快速安装
默认 CLI 构建:
```
cargo install petriage
```
如需 TUI 和 GUI 构建,请使用特性标志从源码构建。
或从源码构建:
```
git clone https://github.com/uky007/petriage.git
cd petriage
cargo build --release
```
有关 GUI/TUI 构建依赖和交叉编译,请参阅 [docs/installation.md](docs/installation.md)。
## 快速使用
```
petriage
# Surface analysis (all except strings)
petriage -a # All information including strings
petriage -H # Headers only
petriage -i # Imports only
petriage --hashes # File hashes only
petriage --json # JSON output
petriage --batch --ndjson # Batch-analyze all PEs in a directory
petriage --fail-on warning # Exit code 3 if anomalies meet the selected threshold
petriage --strip-overlay stripped.exe # Save PE without overlay
petriage --carve-overlay overlay.bin # Extract overlay data
```
```
petriage -x # TUI hex viewer
petriage-gui # GUI (file dialog)
petriage-gui # GUI (open file directly)
```
有关完整的 CLI 选项、`jq` 示例、TUI/GUI 详细信息和示例输出,请参阅 [docs/usage.md](docs/usage.md)。
## 核心功能
- **25 条异常规则** -- 加壳、代码注入、时间戳篡改、结构异常、OPSEC 泄露、Rich Header 篡改、导出目录异常
- **OPSEC 分析** -- PDB 路径、凭据模式、端点检测、CI/CD 路径提示、源路径用户名泄露
- **构建指纹识别** -- .NET / Go / Rust / MSVC / MinGW 检测,并支持壳识别(UPX、Themida、VMProtect、NSIS 等)
- **附加数据切出/剥离** -- 提取附加数据或保存剥离附加数据的 PE(CLI 和 GUI)
- **导出目录分析** -- DLL 名称、时间戳、函数计数以及异常时间戳检测
- **语义化头编辑**(GUI) -- Machine/Subsystem 下拉菜单、人类可读时间戳、DllCharacteristics 标志复选框
- **非标准节高亮** -- 在 CLI 和 GUI 中以黄色高亮显示异常的节名称
## 截图
### CLI

### GUI

### 头部(结构视图 + 编辑器)

### 头部编辑器(内联编辑)

## 退出码
| 代码 | 含义 |
|------|---------|
| 0 | 成功 |
| 1 | 输入错误(找不到文件、读取失败、无效 PE) |
| 2 | 输出错误(文件写入失败) |
| 3 | 超出异常阈值(`--fail-on`) |
## 文档
- [概述与功能](https://github.com/uky007/PETriage/blob/main/docs/description.md)
- [安装说明](https://github.com/uky007/PETriage/blob/main/docs/installation.md)
- [用法与示例](https://github.com/uky007/PETriage/blob/main/docs/usage.md)
- [现有工具概览](https://github.com/uky007/PETriage/blob/main/docs/survey.md)
- [未来工作](https://github.com/uky007/PETriage/blob/main/docs/future_work.md)
## 许可证
MIT OR Apache-2.0标签:API安全, DAST, DeepSeek, GUI, Homebrew安装, JSON输出, PE文件解析, Rust, TUI, 二进制分析, 云安全监控, 云安全运维, 便携式可执行文件, 可视化界面, 库, 应急响应, 异常检测, 恶意软件分析, 批处理分析, 数字取证, 数据展示, 文档结构分析, 熵值分析, 离线分析, 红队, 网络安全, 网络流量审计, 自动化脚本, 通知系统, 隐私保护, 静态分析