gl0bal01/volatility-toolkit
GitHub: gl0bal01/volatility-toolkit
自动化跨平台内存取证工具,基于 Volatility 3 提供一键式分析与报告。
Stars: 0 | Forks: 0
# Volatility 工具包
[](https://github.com/gl0bal01/volatility-toolkit/actions/workflows/lint.yml)
[](LICENSE)
[](https://github.com/volatilityfoundation/volatility3)
[](scripts/vol-analyze.sh)
[](https://gl0bal01.com/intel-codex/category/analysis)
**Windows、Linux 和 macOS 的内存取证自动化。** 自动检测操作系统,并行运行合适的插件,提取 IOC 并生成结构化报告。
## 演示
## 快速开始
```
git clone https://github.com/gl0bal01/volatility-toolkit.git
cd volatility-toolkit
# Option A: 全局安装
sudo make install
vol-analyze memory.raw # auto-detects OS
# Option B: 直接运行
chmod +x scripts/vol-analyze.sh
./scripts/vol-analyze.sh memory.raw
```
## 功能
1. **自动检测**转储是 Windows、Linux 还是 macOS
2. 计算 MD5 和 SHA256 以确保可追溯性
3. 并行运行所有相关插件(批处理)
4. 分离标准输出与标准错误(错误不会污染输出)
5. 显示每个插件的耗时和成功/失败状态
6. 生成结构化摘要报告(文本和可选的 JSON)
7. 可选提取 IOC 字符串(IP、URL、域名、邮箱、文件路径)
8. 可选转储文件和注册表项(Windows)
## 平台支持
| 操作系统 | 插件数量 | 亮点 | 先决条件 |
|----------|----------|------|----------|
| **Windows** | 30 | 进程、DLL、网络、注册表、服务、恶意软件检测、内核驱动、SSDT | 无(Volatility 3 中已捆绑符号) |
| **Linux** | 21 | 进程、bash 历史记录、内核模块、网络、根检测(系统调用/IDT/凭据) | [需要内核符号](#linuxmacos-memory-dumps) |
| **macOS** | 20 | 进程、kext、网络、TrustedBSD、kauth 监听器、系统调用/系统控制检查 | [需要内核符号](#linuxmacos-memory-dumps) |
## 功能特性
| 功能 | 描述 |
|------|------|
| **OS 自动检测** | 分析转储以选择正确的插件集合 |
| **并行执行** | 同时运行最多 N 个插件(`-j 8`) |
| **彩色输出** | 绿色表示成功,黄色表示警告,并显示各插件耗时 |
| **IOC 提取** | 从字符串中提取 IP、URL、域名、邮箱和文件路径 |
| **JSON 报告** | 包含各插件状态的机器可读摘要 |
| **可追溯性链** | 在分析开始前计算 MD5 和 SHA256 |
| **非交互式** | 默认不提示 — 适用于脚本和 CI |
| **注册表导出** | 转储原始 hive 文件以供离线分析(Windows) |
| **错误隔离** | 标准错误捕获到 `.err` 文件 — 绝不混入结果 |
## 使用方法
```
vol-analyze [options]
OPTIONS
--os TYPE Target OS: windows, linux, mac, auto (default: auto)
-o, --output DIR Output directory (default: volatility_output)
-j, --jobs N Max parallel plugins (default: 4)
--dump-registry Dump registry hives to disk (Windows only)
--dump-files Dump files from memory (Windows only)
--extract-strings Extract and categorize IOC strings
--json Generate JSON summary report
--interactive Enable interactive prompts
--no-color Disable colored output
-h, --help Show help
-v, --version Show version
ENVIRONMENT
VOL3_CMD Volatility 3 command (default: vol)
MAX_PARALLEL Default parallel jobs (default: 4)
NO_COLOR Set to disable colors (any value)
```
### 示例
```
# 自动检测操作系统,默认输出
vol-analyze memory.raw
# Windows 分析(包含所有附加组件)
vol-analyze memory.raw --os windows \
-o case-001/ -j 8 \
--dump-files --dump-registry --extract-strings --json
# Linux 转储(LiME 格式)— 需要内核符号
vol-analyze memory.lime --os linux --extract-strings --json
# macOS 分析 — 需要内核符号
vol-analyze memory.raw --os mac -o mac-case/
# CI 友好模式 — 无颜色,JSON 输出
vol-analyze memory.raw --json --no-color 2>/dev/null
```
## 输出结构
```
volatility_output/
├── info.txt # OS info plugin output
├── pslist.txt # Process listing
├── pstree.txt # Process tree
├── netscan.txt / sockstat.txt # Network (OS-dependent)
├── malfind.txt # Malware detection
├── *.err # Per-plugin error logs
├── ... # (all plugin outputs)
├── strings/ # (with --extract-strings)
│ ├── all.txt # Raw strings
│ ├── ipv4.txt # IPv4 addresses
│ ├── urls.txt # URLs
│ ├── domains.txt # Domain names (by frequency)
│ ├── emails.txt # Email addresses
│ └── windows_paths.txt # Windows paths (Windows)
│ └── unix_paths.txt # Unix paths (Linux/macOS)
├── dump_files/ # (Windows --dump-files)
├── registry_dump/ # (Windows --dump-registry)
├── analysis_summary.txt # Human-readable report
└── analysis_summary.json # (with --json)
```
## 文档
实用、有观点的指南 — 不仅仅是命令参考。
- **[Windows 速查表](docs/vol3-cheatsheet.md)** — 30 个插件及工作流上下文
- **[Linux 速查表](docs/linux-cheatsheet.md)** — 21 个插件,包括根检测
- **[macOS 速查表](docs/mac-cheatsheet.md)** — 20 个插件,包括 TrustedBSD 和 kauth
- **[恶意软件分析指南](docs/vol3-malware-analysis.md)** — 在内存中挖掘恶意软件
- **[调查方法论](docs/investigation-methodology.md)** — 结构化 DFIR 工作流
## Tab 补全
Bash 和 Zsh 补全已包含 — 可补全标志、`--os` 值和内存转储文件。
```
# Bash — 通过 `make install` 自动安装,或手动源码安装:
source completions/vol-analyze.bash
# Zsh — 复制到您的 fpath:
cp completions/vol-analyze.zsh ~/.zsh/completions/_vol-analyze
```
## 外部资源
- [SOP:恶意分析](https://gl0bal01.com/intel-codex/Security/Analysis/sop-malware-analysis) — 标准操作流程
- [分析知识库](https://gl0bal01.com/intel-codex/category/analysis) — 指南和技术文章
- [二进制精炼 — 实用指南](https://gl0bal01.com/reverse/binary-refinery-practical-guide) — 二进制分析工作流
- [Volatility 3 文档](https://volatility3.readthedocs.io/)
- [Volatility 基金会](https://volatilityfoundation.org/)
## 要求
- [Volatility 3](https://github.com/volatilityfoundation/volatility3) — 系统中需有 `vol`(或设置 `VOL3_CMD`)
- Bash 4.0+
- 标准 Unix 工具:`strings`、`md5sum`、`sha256sum`、`grep`、`sort`、`uniq`
### Linux/macOS 内存转储
Linux 和 macOS 分析需要匹配的内核符号。请参阅速查表进行设置:
- [Linux 符号生成](docs/linux-cheatsheet.md#symbol-requirements)
- [macOS 符号生成](docs/mac-cheatsheet.md#symbol-requirements)
## 许可证
**[AGPL-3.0](LICENSE)** — 自由用于开源和个人用途。
如果您希望在商业产品或闭源服务中使用本工具且不公开修改内容,则需要商业许可。如需详细信息,请联系 [@gl0bal01](https://github.com/gl0bal01)。
由 [@gl0bal01](https://github.com/gl0bal01) 构建 | [gl0bal01.com](https://gl0bal01.com)
标签:Cutter, Homebrew安装, HTTPS请求, HTTP请求, IOC提取, IP提取, JARM, JSON报告, Linux取证, macOS取证, MD5, OS自动识别, SecList, SHA256, Shell脚本, URL提取, Volatility 3, Windows取证, Windows注册表, 内存分析, 内存取证, 反编译, 取证工具包, 取证报告, 取证框架, 取证自动化, 域名提取, 字符串提取, 并行插件, 应用安全, 开源取证, 数字取证, 文件提取, 文件路径提取, 注册表提取, 自动化取证, 自动化脚本, 邮箱提取, 链式保管