cpuu/winmem-vol3-mcp
GitHub: cpuu/winmem-vol3-mcp
这是一个基于 Volatility3 构建的 MCP 服务器,旨在通过 Claude Desktop 实现对话式的 Windows 内存取证与分析。
Stars: 0 | Forks: 0
# winmem-vol3-mcp
一个封装了 [Volatility3](https://github.com/volatilityfoundation/volatility3) 内存取证框架的 MCP (Model Context Protocol) 服务器,支持通过 Claude Desktop 进行对话式的 Windows 内存分析。
## 主要特性
- **直接的 Volatility3 集成** -- 将 `volatility3` 作为库导入(不使用子进程),并将每个 TreeGrid 解析为类型化的、可 JSON 序列化的字典,以便 Claude 直接进行推理。
- **具备多层缓存的有状态会话** -- 在启动时构建一次 Volatility3 Context 并在所有调用中复用。插件结果按会话缓存(对于带参数的工具,以参数为键),内核/层配置持久化到 `{image}.vol3cfg.json`,以便后续启动跳过 PDB 下载和层扫描。
- **丰富的查询接口** -- 参数化工具接受类型化参数(例如 `windows_vadregexscan(pattern)`);转储工具(`windows_dumpfiles`, `windows_pedump`, ...)将恢复的二进制文件写入 `VOL_DUMP_DIR` 指定的目录,并仅返回磁盘路径,既保持字节数据不进入 Claude 上下文,又便于后续的 IDA / YARA / 沙箱分析。
- **面向取证场景的工具文档字符串** -- 每个工具都带有三层文档字符串(触发模式 / 返回架构 / 取证上下文),帮助 Claude 选择正确的工具、准确解释结果,并自主串联多步分析流程。
- **感知 Windows 版本的插件执行** -- 针对跨 Windows 7 / 8 / 10 / 11(以及特定 Win10 版本)的插件行为已在 [`TOOL_CATALOG.md`](TOOL_CATALOG.md) 中审计并编目——包括硬性限制、隐式 OS 依赖以及版本感知适配器——因此空输出会被正确解读为“不兼容 OS”,而非工具故障。
- **多语言自然语言查询** -- 代码库和工具输出为英文,但用户可以使用 Claude 支持的任何语言(韩语、日语、中文、德语等)提问,并获得同种语言的分析结果。
## 安装说明
需要 Python 3.10+ 和 [uv](https://docs.astral.sh/uv/)。
依赖项通过 uv 管理,并锁定到 [Volatility3 2.27.0](https://github.com/volatilityfoundation/volatility3/releases/tag/v2.27.0)(发布于 2026-01-30)。
```
git clone https://github.com/cpuu/winmem-vol3-mcp.git
cd winmem-vol3-mcp
uv sync
```
## 使用指南
### Claude Desktop 配置
将以下内容添加到你的 `claude_desktop_config.json`:
```
{
"mcpServers": {
"winmem-vol3-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/winmem-vol3-mcp", "run", "python", "mcp_server.py"],
"env": {
"VOL_IMAGE_PATH": "/absolute/path/to/memory.vmem",
"VOL_DUMP_DIR": "/absolute/path/to/dumps"
}
}
}
}
```
`VOL_IMAGE_PATH` 必须指向一个现有的 Windows 内存镜像文件。否则服务器将无法启动。
`VOL_DUMP_DIR` 是可选的。设置后,`windows_dumpfiles` 等转储工具会将恢复的字节写入此目录(首次使用时创建该目录,文件名冲突通过追加 `-1`、`-2` 等解决)。未设置时,调用任何转储工具会引发明确错误,以便 Claude 提示用户进行配置。
### 快速测试
配置好 Claude Desktop 后,尝试这样提问:
Claude 将自动调用 `windows_info` 并以对话形式展示分析结果:

随后你可以追问以深入分析:

## 可用工具
来自 Volatility3 v2.27.0 的 79 个 Windows 插件(`volatility3.plugins.windows.*`)已集成为 MCP 工具,覆盖了框架 Windows 树中所有未弃用的插件。完整参考请参见 [TOOL_CATALOG.md](TOOL_CATALOG.md);`plan.md` 记录了有意排除的 8 个已弃用 `PluginRenameClass` 包装器。
| 类别 | 插件 |
|---|---|
| 进程分析 | pslist, psscan, pstree, cmdline, sessions, getsids, privileges, envars, handles, joblinks, thrdscan, threads |
| 内存分析 | vadinfo, vadwalk, memmap, virtmap, strings, shimcachemem, vadregexscan |
| 模块 / DLL 分析 | dlllist, modules, modscan, verinfo, iat, pe_symbols, pedump |
| 网络分析 | netscan, netstat |
| 内核 / 驱动分析 | bigpools, callbacks, driverscan, driverirp, devicetree, ssdt, poolscanner, orphan_kernel_threads, kpcrs, unloadedmodules, timers, debugregisters, etwpatch |
| 文件分析 | filescan, dumpfiles, symlinkscan, mutantscan |
| 注册表分析 | registry.hivelist, registry.hivescan, registry.printkey, registry.userassist, registry.certificates, registry.scheduled_tasks, registry.getcellroutine, registry.amcache |
| 服务分析 | svcscan, svclist |
| 桌面 / GUI | windowstations, desktops, deskscan, windows |
| 控制台 / Shell | consoles, cmdscan |
| 系统信息 | info, statistics, crashinfo |
| 安全 / 完整性 | mbrscan, truecrypt, getservicesids, suspended_threads |
| 恶意软件检测 | malware.drivermodule, malware.ldrmodules, malware.malfind, malware.skeleton_key_check, malware.unhooked_system_calls, malware.svcdiff, malware.processghosting, malware.hollowprocesses, malware.pebmasquerade, malware.suspicious_threads, malware.psxview |
## 架构
```
Claude Desktop <--> MCP Server (stdio) <--> volatility3 (Python import)
|
Session
+-- Context (built once, reused)
+-- Config cache ({image}.vol3cfg.json)
+-- Result cache (plugin name -> result)
```
每个服务器会话固定对应单个内存镜像。这是有意为之——它确保会话内的所有插件结果都精确指向同一个内存镜像,以保持分析的严谨性。
## 许可证
Apache-2.0
标签:AlienVault OTX, Claude, CVE检测, HTTPS请求, JARM, MCP, Model Context Protocol, Python API, SecList, Volatility3, Windows取证, 会话缓存, 内存分析, 内存取证, 多语言支持, 安全测试框架, 恶意代码分析, 数字取证, 无线安全, 流量嗅探, 结构化输出, 网络安全审计, 自动化分析, 自动化脚本, 自定义DNS解析器, 跨站脚本, 逆向工具, 配置文件