Volatility
2026/5/29工具工具内存取证Volatility大约 4 分钟
Volatility
链接
是什么
Volatility 是内存取证框架,用来分析内存镜像中的进程、网络连接、命令历史、文件对象、注册表和可疑注入痕迹。
CTF Misc/Forensics 中常见输入是:
.raw.mem.vmem- Windows/Linux 内存镜像
目前建议优先了解 Volatility 3,同时保留 Volatility 2 的基本用法,因为很多旧题和 WP 仍使用 v2。
安装与配置
Volatility 3:
python3 -m pip install volatility3
vol -h也可以从官方仓库使用:
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
python3 vol.py -hVolatility 2 常见命令是 vol.py,需要 profile,旧题中仍会遇到。
基本用法
查看帮助
vol -h或:
python3 vol.py -hWindows 进程列表
vol -f memory.raw windows.pslist进程树
vol -f memory.raw windows.pstree命令行记录
vol -f memory.raw windows.cmdline网络连接
vol -f memory.raw windows.netscan文件扫描
vol -f memory.raw windows.filescan更多插件
进程相关
# 进程列表(详细)
vol -f memory.raw windows.pslist
# 进程树
vol -f memory.raw windows.pstree
# 进程环境变量
vol -f memory.raw windows.envars --pid <PID>
# 进程命令行
vol -f memory.raw windows.cmdline
# 进程 DLL
vol -f memory.raw windows.dlllist --pid <PID>
# 进程句柄
vol -f memory.raw windows.handles --pid <PID>
# 进程内存映射
vol -f memory.raw windows.memmap --pid <PID>网络相关
# 网络连接
vol -f memory.raw windows.netscan
# 网络连接(含进程信息)
vol -f memory.raw windows.netstat文件系统
# 文件扫描
vol -f memory.raw windows.filescan
# 提取文件
vol -f memory.raw windows.dumpfiles --physaddr <ADDR> -D output/
# 注册表
vol -f memory.raw windows.registry.hivelist
vol -f memory.raw windows.registry.userassist可疑进程检测
# 检查进程注入
vol -f memory.raw windows.malfind
# 检查 SSDT hooks
vol -f memory.raw windows.ssdt
# 检查驱动
vol -f memory.raw windows.modules
vol -f memory.raw windows.modscanLinux 内存分析
# Linux 进程列表
vol -f memory.raw linux.pslist
# Linux 进程树
vol -f memory.raw linux.pstree
# Linux 网络连接
vol -f memory.raw linux.sockstat
# Linux 内核模块
vol -f memory.raw linux.lsmod
# Linux bash 历史
vol -f memory.raw linux.bash内存分析工作流
第一轮观察
vol -f memory.raw windows.info
vol -f memory.raw windows.pslist
vol -f memory.raw windows.pstree
vol -f memory.raw windows.cmdline
vol -f memory.raw windows.netscan目标是先建立时间线和可疑进程,而不是直接搜 flag。
查找可疑字符串
strings memory.raw | grep -i "flag\|password\|secret\|key"strings 很粗糙,但常能给方向。
dump 可疑进程
先找到 PID,再导出:
vol -f memory.raw -o dumpdir windows.memmap --pid 1234 --dump导出后继续用 strings、file、binwalk 分析。
浏览器和剪贴板
内存题里线索可能在浏览器历史、命令行、剪贴板、环境变量、进程参数里。不要只盯着进程名。
提取文件
# 扫描文件对象
vol -f memory.raw windows.filescan | grep -i "flag\|secret\|password"
# 提取文件
vol -f memory.raw windows.dumpfiles --physaddr 0x12345678 -D output/注册表分析
# 列出注册表 hive
vol -f memory.raw windows.registry.hivelist
# 查看 UserAssist(程序执行记录)
vol -f memory.raw windows.registry.userassist
# 查看最近访问的文件
vol -f memory.raw windows.registry.shimcacheCTF 内存取证技巧
常见 flag 位置
1. 进程内存中(strings 搜索)
2. 文件对象中(filescan + dumpfiles)
3. 剪贴板中(clipboard 插件)
4. 环境变量中(envars 插件)
5. 命令行参数中(cmdline 插件)
6. 注册表中(registry 插件)
7. 网络传输中(netscan 插件)时间线分析
# 查看进程创建时间
vol -f memory.raw windows.pslist --sort-by CreateTime
# 查看文件修改时间
vol -f memory.raw windows.filescan --sort-by ModifiedTime恶意软件分析
1. 检查异常进程(父子关系、路径、参数)
2. 检查注入内存(malfind)
3. 检查网络连接(netscan)
4. 检查驱动加载(modules)
5. dump 可疑进程内存分析Volatility 2 用法
# 获取 profile
vol.py -f memory.raw imageinfo
# 使用 profile
vol.py -f memory.raw --profile=Win7SP1x64 pslist
vol.py -f memory.raw --profile=Win7SP1x64 netscan
vol.py -f memory.raw --profile=Win7SP1x64 filescan常见问题
Volatility 2 和 3 该用哪个
新题优先 Volatility 3。旧 WP 或旧镜像可能使用 Volatility 2 profile,需要按题目环境选择。
插件报错
检查镜像类型、插件名、Python 版本和符号文件。先跑 windows.info 确认基础识别是否正常。
内存镜像很大怎么办
先用高层插件缩小范围:进程、网络、命令行、文件扫描。不要一开始全量 dump。
符号文件缺失
# Volatility 3 需要符号文件
# 下载对应系统的符号文件到 volatility3/symbols 目录
# 或使用 --symbol-dirs 指定路径分析速度慢
1. 使用 SSD 存储镜像
2. 增加内存
3. 使用具体插件而不是通用扫描
4. 先用 strings 做初步筛选关联
- 内存取证基础
- 日志分析基础
- 磁盘镜像与文件恢复
- strings
- file
- xxd与hexdump