Yonatan-Gaffen/awesome-volatility-plugins

GitHub: Yonatan-Gaffen/awesome-volatility-plugins

一个聚合 Volatility 官方与社区插件的清单,解决内存镜像分析中插件发现与版本碎片化问题。

Stars: 0 | Forks: 0

# 精彩的 Volatility 插件 [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) ![最后更新](https://img.shields.io/badge/Last%20Updated-March%202026-blue) ![贡献欢迎](https://img.shields.io/badge/Contributions-Welcome-brightgreen) ## 目录 - [什么是 Volatility?](#what-is-volatility) - [官方 Volatility 3 插件](#official-volatility-3-plugins) - [跨平台 (v3)](#cross-platform-v3) - [Windows 插件 (v3)](#windows-plugins-v3) - [Linux 插件 (v3)](#linux-plugins-v3) - [macOS 插件 (v3)](#macos-plugins-v3) - [官方 Volatility 2 插件](#official-volatility-2-plugins) - [镜像识别](#image-identification) - [进程与 DLL](#processes--dlls) - [进程内存](#process-memory) - [内核内存与对象](#kernel-memory--objects) - [网络 (v2)](#networking-v2) - [注册表](#registry) - [恶意软件与 Rootkit 检测 (v2)](#malware--rootkit-detection-v2) - [GUI / Windows 子系统](#gui--windows-subsystem) - [崩溃转储与休眠](#crash-dump--hibernation) - [文件系统 (v2)](#filesystem-v2) - [杂项 (v2)](#miscellaneous-v2) - [Linux 插件 (v2)](#linux-plugins-v2) - [Mac 插件 (v2)](#mac-plugins-v2) - [Volatility 2 与 3 对比](#volatility-2-vs-3-comparison) - [架构对比](#architecture-comparison) - [插件逐个映射](#plugin-by-plugin-mapping) - [社区与第三方插件](#community--third-party-plugins) - [Volatility 3 社区插件](#volatility-3-community-plugins) - [Volatility 2 社区插件](#volatility-2-community-plugins) - [Volatility 插件竞赛优胜者](#volatility-plugin-contest-winners) - [研究论文](#research-papers) - [教程与学习资源](#tutorials--learning-resources) - [官方文档](#official-documentation) - [博客文章与书面教程](#blog-posts--written-tutorials) - [交互平台](#interactive-platforms) - [培训课程](#training-courses) - [书籍](#books) - [GitHub 教程仓库](#github-tutorial-repositories) - [插件开发指南](#plugin-development-guide) - [Volatility 3 插件架构](#volatility-3-plugin-architecture) - [Volatility 3 最小插件示例](#volatility-3-minimal-plugin-example) - [Volatility 2 插件架构](#volatility-2-plugin-architecture) - [Volatility 2 最小插件示例](#volatility-2-minimal-plugin-example) - [从 V2 移植到 V3](#porting-from-v2-to-v3) - [更多资源](#additional-resources) - [会议演讲与展示](#conference-talks--presentations) - [精选列表与博客](#curated-lists--blogs) - [相关工具](#related-tools) - [贡献](#contributing) - [许可证](#license) ## 什么是 Volatility? [Volatility](https://github.com/volatilityfoundation/volatility3) 是全球使用最广泛的从易失性内存(RAM)样本中提取数字取证框架。它被执法部门、军事机构、学术界和商业调查人员用于事件响应、恶意软件分析和数字取证。 | | Volatility 2 | Volatility 3 | |---|---|---| | **代码库** | [volatilityfoundation/volatility](https://github.com/volatilityfoundation/volatility) | [volatilityfoundation/volatility3](https://github.com/volatilityfoundation/volatility3) | | **Python** | 2.6 / 2.7 | 3.8+ | | **状态** | 遗留(不再积极开发) | 活跃开发 | ## 官方 Volatility 3 插件 ### 跨平台 (v3) | 插件 | 描述 | |--------|-------------| | `banners.Banners` | 识别潜在的 Linux 横幅信息 | | `configwriter.ConfigWriter` | 将配置数据写入文件 | | `frameworkinfo.FrameworkInfo` | 列出 Volatility 的各种模块化组件 | | `isfinfo.IsfInfo` | 确定提供的 ISF 文件信息 | | `layerwriter.LayerWriter` | 将物理层写入原始文件 | | `regexscan.RegExScan` | 使用正则表达式扫描内存 | | `timeliner.Timeliner` | 从多个插件生成 body-file 格式的时间线 | | `vmscan.VmScan` | 扫描 VMware 快照、VirtualBox 核心转储 | | `yarascan.YaraScan` | 使用 YARA 规则扫描内核内存 | ### Windows 插件 (v3) #### 进程与线程分析 | 插件 | 描述 | |--------|-------------| | `windows.pslist.PsList` | 列出内存镜像中的进程(EPROCESS 列表遍历) | | `windows.psscan.PsScan` | 通过池扫描列出内存镜像中的进程 | | `windows.pstree.PsTree` | 基于父子关系列出进程树 | | `windows.psxview.PsXView` | 使用多种交叉引用方法检测隐藏的进程 | | `windows.cmdline.CmdLine` | 列出进程命令行参数 | | `windows.cmdscan.CmdScan` | 查找 `_COMMAND_HISTORY` 和 `_CONSOLE_INFORMATION` | | `windows.consoles.Consoles` | 查找 `_CONSOLE_INFORMATION` 并完整输出 | | `windows.envars.Envars` | 显示进程环境变量 | | `windows.dlllist.DllList` | 列出特定进程中加载的模块 | | `windows.ldrmodules.LdrModules` | 通过 PEB 交叉引用 3 个 PEB 列表和 VAD 列出加载的模块 | | `windows.handles.Handles` | 列出进程打开的句柄 | | `windows.getsids.GetSIDs` | 打印拥有每个进程的 SID | | `windows.getservicesids.GetServiceSIDs` | 列出服务进程的令牌 SID | | `windows.privileges.Privs` | 列出进程令牌权限 | | `windows.joblinks.JobLinks` | 打印进程作业链接信息 | | `windows.threads.Threads` | 列出进程线程 | | `windows.thrdscan.ThrdScan` | 通过池标签扫描 `_ETHREAD` 对象 | | `windows.suspended_threads.Suspended_Threads` | 列出挂起的线程(潜在注入指标) | | `windows.orphan_kernel_threads.Orphan_Kernel_Threads` | 列出未关联到已知模块的核线程 | #### 恶意软件与威胁检测 | 插件 | 描述 | |--------|-------------| | `windows.malfind.Malfind` | 列出注入的代码和/或可疑内存区域 | | `windows.hollowprocesses.HollowProcesses` | 检测进程空洞(可执行镜像不匹配) | | `windows.processghosting.ProcessGhosting` | 检测进程幽灵(删除挂起的可执行文件) | | `windows.direct_system_calls.Direct_System_Calls` | 检测直接调用系统调用(用户模式下的 syscall/sysenter) | | `windows.indirect_system_calls.Indirect_System_Calls` | 检测间接系统调用使用(EDR 规避技术) | | `windows.unhooked_system_calls.Unhooked_System_Calls` | 检测被取消挂钩的 NTDLL 函数(EDR 规避) | | `windows.suspicious_threads.Suspicious_Threads` |列出起始地址可疑的线程 | | `windows.skeleton_key_check.Skeleton_Key_Check` | 查找 Skeleton Key 恶意软件特征 | | `windows.pebmasquerade.PEBMasquerade` | 检测 PEB 伪装(镜像路径不匹配的 PEB) | | `windows.etwpatch.EtwPatch` | 检测 ETW 补丁(反日志技术) | #### 内核与驱动分析 | 插件 | 描述 | |--------|-------------| | `windows.modules.Modules` | 列出加载的内核模块 | | `windows.modscan.ModScan` | 通过池扫描内核模块 | | `windows.unloadedmodules.UnloadedModules` | 列出已卸载的内核模块 | | `windows.driverscan.DriverScan` | 扫描驱动对象(池扫描) | | `windows.driverirp.DriverIrp` | 列出驱动的 IRP 主函数表 | | `windows.drivermodule.DriverModule` | 确定是否有驱动被 Rootkit 隐藏 | | `windows.devicetree.DeviceTree` | 基于驱动和附加设备列出树 | | `windows.callbacks.Callbacks` | 列出内核回调和通知例程 | | `windows.ssdt.SSDT` | 列出系统调用表(SSDT) | | `windows.kpcrs.KPCRs` | 打印每个处理器的 KPCR 结构 | | `windows.debugregisters.DebugRegisters` | 列出每个处理器的调试寄存器 | | `windows.timers.Timers` | 打印内核定时器及其关联的 DPC | #### 注册表分析 | 插件 | 描述 | |--------|-------------| | `windows.registry.hivelist.HiveList` | 列出内存中的注册表 Hive | | `windows.registry.hivescan.HiveScan` | 在内存中扫描注册表 Hive | | `windows.registry.printkey.PrintKey` | 列出 Hive 或特定键下的注册表键及其子项和值 | | `windows.registry.userassist.UserAssist` | 打印 UserAssist 注册表键 | | `windows.amcache.Amcache` | 从注册表提取 Amcache 条目 | | `windows.scheduled_tasks.ScheduledTasks` | 解码注册表中的计划任务信息 | | `windows.shimcachemem.ShimcacheMem` | 从 ahcache.sys AVL 树读取 Shimcache 条目 | #### 凭据提取 | 插件 | 描述 | |--------|-------------| | `windows.hashdump.Hashdump` | 转储用户密码哈希(LM/NTLM) | | `windows.cachedump.Cachedump` | 转储内存中的缓存域密码哈希 | | `windows.lsadump.Lsadump` | 转储 LSA 机密信息 | #### 网络分析 | 插件 | 描述 | |--------|-------------| | `windows.netscan.NetScan` | 扫描网络对象(TCP 端点、监听器、UDP) | | `windows.netstat.NetStat` | 遍历网络跟踪结构以查找端点 | #### 文件系统与对象 | 插件 | 描述 | |--------|-------------| | `windows.filescan.FileScan` | 扫描文件对象(池扫描) | | `windows.dumpfiles.DumpFiles` | 转储内存中的缓存文件内容 | | `windows.mftscan.MFTScan` | 扫描 MFT FILE 条目 | | `windows.mbrscan.MBRScan` | 扫描并解析 MBR(主引导记录)结构 | | `windows.symlinkscan.SymlinkScan` | 扫描符号链接对象 | | `windows.mutantscan.MutantScan` | 扫描互斥体(mutex)对象 | #### PE / 二进制分析 | 插件 | 描述 | |--------|-------------| | `windows.pedump.PEDump` | 从特定地址空间提取 PE 文件 | | `windows.pe_symbols.PESymbols` | 打印 PE 文件在给定虚拟地址的符号 | | `windows.iat.IAT` | 提取进程的导入地址表条目 | | `windows.verinfo.VerInfo` | 列出 PE 文件的版本信息 | #### Windows 服务 | 插件 | 描述 | |--------|-------------| | `windows.svcscan.SvcScan` | 扫描 Windows 服务记录结构 | | `windows.svclist.SvcList` | 通过遍历服务管理器链表列出服务 | | `windows.svcdiff.SvcDiff` | 比较扫描与列出的服务以检测隐藏服务 | #### 桌面与 GUI | 插件 | 描述 | |--------|-------------| | `windows.deskscan.DeskScan` | 池扫描 `tagDESKTOP` 对象 | | `windows.desktops.Desktops` | 列出每个窗口站的桌面 | | `windows.windowstations.WindowStations` | 列出窗口站对象 | #### 内存分析 | 插件 | 描述 | |--------|-------------| | `windows.memmap.Memmap` | 打印特定进程的内存映射 | | `windows.vadinfo.VadInfo` | 列出进程的 VAD(虚拟地址描述符) | | `windows.vadwalk.VadWalk` | 遍历 VAD 树 | | `windows.vadregexscan.VadRegExScan` | 在进程 VAD 中扫描正则表达式模式 | | `windows.vadyarascan.VadYaraScan` | 使用 YARA 规则扫描进程 VAD | | `windows.virtmap.VirtMap` | 列出虚拟映射的段 | | `windows.bigpools.BigPools` | 列出大页池 | | `windows.poolscanner.PoolScanner` | 通用池扫描器 | | `windows.strings.Strings` | 匹配物理偏移到虚拟地址(用于 `strings` 输出) | #### 系统信息 | 插件 | 描述 | |--------|-------------| | `windows.info.Info` | 显示内存样本的 OS 和内核详细信息 | | `windows.crashinfo.Crashinfo` | 列出 Windows 崩溃转储头信息 | | `windows.sessions.Sessions` | 列出进程会话信息 | | `windows.truecrypt.Passphrase` | 恢复缓存的 TrueCrypt 密码短语 | ### Linux 插件 (v3) #### 进程分析 | 插件 | 描述 | |--------|-------------| | `linux.pslist.PsList` | 列出 Linux 内存镜像中的进程 | | `linux.pstree.PsTree` | 列出进程树 | | `linux.psaux.PsAux` | 列出带命令行参数的进程 | | `linux.psscan.PsScan` | 在内存中扫描 `task_struct` 对象 | | `linux.bash.Bash` | 从内存恢复 bash 命令历史 | | `linux.envars.Envars` | 列出进程环境变量 | | `linux.capabilities.Capabilities` | 列出进程能力 | | `linux.elfs.Elfs` | 列出进程内存中的 ELF 映射 | | `linux.library_list.LibraryList` | 枚举每个进程加载的库 | | `linux.proc.Maps` | 列出进程内存映射(`/proc/[pid]/maps`) | #### Rootkit 与恶意软件检测 | 插件 | 描述 | |--------|-------------| | `linux.malfind.Malfind` | 列出可能包含注入代码的进程内存范围 | | `linux.check_syscall.Check_syscall` | 检查系统调用表是否存在钩子 | | `linux.check_idt.Check_idt` | 检查 IDT 是否存在修改 | | `linux.check_creds.Check_creds` | 检查具有提升权限/共享凭证的进程 | | `linux.check_afinfo.Check_afinfo` | 验证网络协议操作函数指针 | | `linux.hidden_modules.Hidden_modules` | 通过交叉引用查找隐藏的内核模块 | | `linux.keyboard_notifiers.Keyboard_notifiers` | 解析键盘通知链 | | `linux.netfilter.Netfilter` | 检查 netfilter 钩子 | | `linux.tty_checkty_check` | 检查 TTY 设备函数指针 | | `linux.process_spoofing.Process_Spoofing` | 检测命令参数(argv[0])不匹配的进程伪装 | #### 跟踪基础设施 | 插件 | 描述 | |--------|-------------| | `linux.check_ftrace.Check_ftrace` | 检查 ftrace 钩子以查找函数跳转 | | `linux.perf_events.Perf_Events` | 列出活动的 perf 事件条目 | | `linux.check_tracepoints.Check_tracepoints` | 检查跟踪点钩子的修改 | | `linux.ebpf.EBPF` | 列出内核中加载的 eBPF 程序和映射 | #### 内核模块与驱动 | 插件 | 描述 | |--------|-------------| | `linux.lsmod.Lsmod` | 列出加载的内核模块 | | `linux.modxview.Modxview` | 交叉引用内核模块列表以检测隐藏模块 | #### 网络 | 插件 | 描述 | |--------|-------------| | `linux.sockstat.Sockstat` | 列出所有进程的网络连接 | | `linux.sockscan.SockScan` | 在内存中扫描 socket 对象 | | `linux.ip.Addr` | 列出网络接口地址 | | `linux.ip.Link` | 列出网络接口 | #### 文件系统 | 插件 | 描述 | |--------|-------------| | `linux.lsof.Lsof` | 列出每个进程打开的文件描述符 | | `linux.mountinfo.MountInfo` | 列出挂载的文件系统及挂载选项 | | `linux.pagecache.PageCache` | 恢复页面缓存内容(基于文件的页) | #### 系统信息 | 插件 | 描述 | |--------|-------------| | `linux.dmesg.Dmesg` | 打印内核环缓冲消息 | | `linux.iomem.IOMem` | 生成类似 `/proc/iomem` 的输出 | | `linux.kmsg.Kmsg` | 读取内核日志缓冲 | | `linux.boottime.Boottime` | 显示内核启动时间 | | `linux.cpuinfo.CpuInfo` | 列出 CPU 信息 | ### macOS 插件 (v3) | 插件 | 描述 | |--------|-------------| | `mac.pslist.PsList` | 列出 macOS 内存镜像中的进程 | | `mac.pstree.PsTree` | 列出进程树 | | `mac.psaux.PsAux` | 恢复程序命令行参数 | | `mac.bash.Bash` | 从内存恢复 bash 历史 | | `mac.lsmod.Lsmod` | 列出加载的内核扩展(kexts) | | `mac.lsof.Lsof` | 列出打开的文件描述符 | | `mac.malfind.Malfind` | 列出可能包含注入代码的进程内存范围 | | `mac.check_syscall.Check_syscall` | 检查系统调用表是否存在钩子 | | `mac.check_sysctl.Check_sysctl` | 检查 sysctl 处理器是否存在钩子 | | `mac.check_trap_table.Check_trap_table` | 检查 Mach 中断表是否存在钩子 | | `mac.kauth_listeners.Kauth_listeners` | 列出 Kauth 监听范围和回调 | | `mac.kauth_scopes.Kauth_scopes` | 列出 Kauth 范围及其监听器 | | `mac.kevents.Kevents` | 列出内核事件(kqueue/kevent)信息 | | `mac.vfsevents.VFSevents` | 列出处理文件系统事件的进程 | | `mac.trustedbsd.Trustedbsd` | 列出 TrustedBSD MAC 框架策略 | | `mac.socket_filters.Socket_filters` | 列出活动 socket 过滤回调 | | `mac.netstat.Netstat` | 列出网络连接 | | `mac.ifconfig.Ifconfig` | 列出活动网络接口 | | `mac.dmesg.Dmesg` | 打印内核消息缓冲 | | `mac.mount.Mount` | 列出挂载的文件系统 | | `mac.list_files.List_Files` | 列出 VFS 文件条目 | | `mac.timers.Timers` | 列出内核定时器调用条目 | | `mac.proc_maps.Maps` | 列出进程内存映射 | ## 官方 Volatility 2 插件 ### 镜像识别 | 插件 | 描述 | |--------|-------------| | `imageinfo` | 识别镜像信息(建议的 profile、KDBG、DTB、KPCR 等) | | `kdbgscan` | 搜索并转储潜在的 KDBG 值 | | `kpcrscan` | 搜索并转储潜在的 KPCR 值 | ### 进程与 DLL | 插件 | 描述 | |--------|-------------| | `pslist` | 通过遍历 EPROCESS 链表打印所有运行中的进程 | | `pstree` | 以树状结构(父子关系)打印进程列表 | | `psscan` | 通过池扫描查找进程对象(查找隐藏/未链接的进程) | | `psdispscan` | 通过池扫描查找 DISPATCHER_HEADER 对象(备用进程扫描) | | `psxview` | 使用多种交叉视图技术查找隐藏进程 | | `dlllist` | 打印每个进程加载的 DLL 列表 | | `dlldump` | 转储进程地址空间中的 DLL | | `handles` | 打印每个进程打开的句柄 | | `getsids` | 打印拥有每个进程的 SID | | `getservicesids` | 获取注册表中的服务名称并计算其 SID | | `cmdscan` | 通过扫描 `_COMMAND_HISTORY` 提取命令历史 | | `consoles` | 通过扫描 `_CONSOLE_INFORMATION` 提取命令历史 | | `privs` | 显示进程权限 | | `envars` | 显示进程环境变量 | | `verinfo` | 从 PE 镜像打印版本信息 | | `enumfunc` | 枚举进程、DLL 和内核驱动的导入与导出函数 | | `cmdline` | 显示进程命令行参数 | ### 进程内存 | 插件 | 描述 | |--------|-------------| | `memmap` | 打印特定进程的内存映射 | | `memdump` | 转储进程可寻址内存 | | `procdump` | 将进程转储为可执行文件样本 | | `vadinfo` | 转储 VAD(虚拟地址描述符)信息 | | `vadwalk` | 遍历 VAD 树 | | `vadtree` | 遍历 VAD 树并以树状格式显示 | | `vaddump` | 将 VAD 段转储到文件 | | `evtlogs` | 提取 Windows 事件日志(XP/2003) | | `iehistory` | 重构 Internet Explorer 缓存/历史记录 | ### 内核内存与对象 | 插件 | 描述 | |--------|-------------| | `modules` | 打印已加载的内核模块列表 | | `modscan` | 通过池扫描查找内核模块对象 | | `moddump` | 将内核驱动转储为可执行文件样本 | | `ssdt` | 显示 SSDT(系统服务描述表)条目 | | `driverscan` | 通过池扫描查找驱动对象 | | `filescan` | 通过池扫描查找文件对象 | | `mutantscan` | 通过池扫描查找互斥体对象 | | `symlinkscan` | 通过池扫描查找符号链接对象 | | `thrdscan` | 通过池扫描查找线程对象 | | `dumpfiles` | 提取内存映射和缓存的文件 | | `unloadedmodules` | 打印已卸载的内核模块列表 | ### 网络 (v2) | 插件 | 描述 | |--------|-------------| | `connections` | 打印打开的连接(仅限 Windows XP 和 2003) | | `connscan` | 通过池扫描查找 TCP连接(仅限 Windows XP 和 2003) | | `sockets` | 打印打开的套接字(仅限 Windows XP 和 2003) | | `sockscan` | 通过池扫描查找 TCP 套接字对象(仅限 Windows XP 和 2003) | | `netscan` | 扫描网络工件(Vista、2008、7、8、10) | ### 注册表 | 插件 | 描述 | |--------|-------------| | `hivescan` | 通过池扫描查找注册表 Hive 对象 | | `hivelist` | 打印注册表 Hive 列表 | | `printkey` | 打印注册表键及其子键和值 | | `hivedump` | 打印整个键/子键结构 | | `hashdump` | 从内存转储密码哈希(SAM + SYSTEM Hive) | | `lsadump` | 从注册表转储 LSA 机密信息 | | `cachedump` | 转储缓存的域密码哈希 | | `userassist` | 打印 UserAssist 注册表键及信息 | | `shellbags` | 打印 ShellBags 信息(文件夹访问历史) | | `shimcache` | 解析应用程序兼容性 Shim Cache 注册表键 | | `dumpregistry` | 将注册表 Hive 转储到磁盘 | | `auditpol` | 打印 HKLM\SECURITY 审核策略 | ### 恶意软件与 Rootkit 检测 (v2) | 插件 | 描述 | |--------|-------------| | `malfind` | 查找隐藏和注入的代码(VAD 基础检测) | | `yarascan` | 使用 YARA 规则扫描进程或内核内存 | | `svcscan` | 扫描 Windows 服务 | | `ldrmodules` | 检测未链接的 DLL(交叉引用 PEB 列表与 VAD) | | `impscan` | 重构进程的导入地址表 | | `apihooks` | 检测进程和内核内存中的 API 钩子 | | `idt` | 显示中断描述符表条目 | | `gdt` | 显示全局描述符表条目 | | `threads` | 检查线程对象并检测异常 | | `callbacks` | 打印系统级通知例程(注册表、进程、线程、镜像加载、bugcheck 等) | | `driverirp` | 打印驱动的 IRP(I/O 请求包)函数表 | | `devicetree` | 显示设备树(设备/驱动关系) | | `timers` | 打印内核定时器对象及其关联的 DPC | | `psxview` | 跨视图检测隐藏进程(也在“进程”中列出) | ### GUI / Windows 子系统 | 插件 | 描述 | |--------|-------------| | `sessions` | 列出 `_MM_SESSION_SPACE`(用户会话)详细信息 | | `wndscan` | 池扫描窗口站对象 | | `deskscan` | 池扫描 `tagDESKTOP` 对象(桌面) | | `atomscan` | 池扫描原子表 | | `atoms` | 打印会话和窗口站原子表 | | `clipboard` | 提取 Windows 剪贴板内容 | | `eventhooks` | 打印 Windows 事件钩子详情 | | `gahti` | 转储 USER 句柄类型信息 | | `messagehooks` | 列出桌面和线程窗口消息钩子 | | `userhandles` | 转储 USER 句柄表 | | `screenshot` | 基于 GDI 窗口保存伪截图 | | `gditimers` | 打印已安装的 GDI 定时器函数 | | `windows` | 详细打印桌面窗口 | | `wintree` | 打印 Z 顺序桌面窗口树 | ### 崩溃转储与休眠 | 插件 | 描述 | |--------|-------------| | `crashinfo` | 转储崩溃转储头信息 | | `hibinfo` | 转储休眠文件信息 | | `imagecopy` | 将物理地址空间复制为原始 DD 镜像 | | `raw2dmp` | 将物理内存样本转换为 Windows 崩溃转储 | | `vboxinfo` | 转储 VirtualBox 信息 | | `vmwareinfo` | 转储 VMware VMSS/VMSN 信息 | | `hpakinfo` | 打印 HPAK 文件(FDPro 格式)信息 | | `hpakextract` | 从 HPAK 文件提取物理内存 | ### 文件系统 (v2) | 插件 | 描述 | |--------|-------------| | `mbrparser` | 解析并重建主引导记录(MBR)结构 | | `mftparser` | 扫描并解析 MFT(主文件表)条目 | ### 杂项 (v2) | 插件 | 描述 | |--------|-------------| | `strings` | 匹配物理偏移到虚拟地址(用于 `strings` 输出) | | `volshell` | 用于探索内存镜像的交互式 Shell | | `bioskbd` | 从 BIOS 键盘缓冲区读取按键 | | `patcher` | 基于页面扫描修补内存 | | `pagecheck` | 检查损坏/交换的页面 | | `timeliner` | 从多个工件创建 body-file 格式时间线 | | `dumpcerts` | 转储 RSA 私钥和公钥 SSL 证书 | | `notepad` | 列出 Notepad 中当前可见的文本 | ### Linux 插件 (v2) 所有前缀为 `linux_` — 使用 `--profile=LinuxProfile` 运行: | 插件 | 描述 | |--------|-------------| | `linux_pslist` | 通过遍历 `task_struct->tasks` 列表收集活动任务 | | `linux_pstree` | 显示父/子进程关系 | | `linux_psaux` | 收集带完整命令行和启动时间的进程 | | `linux_pslist_cache` | 从 `kmem_cache` 收集任务 | | `linux_psxview` | 交叉引用多种进程列表方法 | | `linux_psscan` | 扫描物理内存中的 `task_struct` 对象 | | `linux_bash` | 从内存恢复 bash 历史 | | `linux_bash_env` | 恢复 bash 环境变量 | | `linux_lsmod` | 收集已加载的内核模块 | | `linux_hidden_modules` | 通过交叉视图分析查找隐藏的内核模块 | | `linux_moddump` | 将已加载的内核模块提取到文件 | | `linux_check_syscall` | 检查系统调用表是否存在钩子 | | `linux_check_idt` | 检查 IDT 是否存在钩子 | | `linux_check_tty` | 检查 TTY 设备是否存在钩子 | | `linux_check_modules` | 比较模块列表与 `sysfs` 信息 | | `linux_check_creds` | 检查具有提升权限/共享凭证的进程 | | `linux_check_afinfo` | 验证网络协议操作函数指针 | | `linux_check_fop` | 检查文件操作结构是否存在修改 | | `linux_keyboard_notifiers` | 解析键盘通知链 | | `linux_lsof` | 列出每个进程打开的文件描述符 | | `linux_proc_maps` | 收集进程内存映射 | | `linux_dump_map` | 将进程内存映射写入磁盘 | | `linux_memmap` | 转储进程内存映射 | | `linux_netstat` | 列出打开的网络连接 | | `linux_ifconfig` | 收集活动网络接口 | | `linux_arp` | 打印 ARP 表 | | `linux_route_cache` | 从内存恢复路由缓存 | | `linux_mount` | 收集挂载的文件系统 | | `linux_tmpfs` | 恢复 tmpfs 文件系统内容 | | `linux_dmesg` | 收集 dmesg 缓冲 | | `linux_iomem | 输出类似 `/proc/iomem` 的信息 | | `linux_cpuinfo` | 输出 CPU 信息 | | `linux_find_file` | 通过 inode 或路径在内存中查找文件 | | `linux_vma_cache` | 从 `vm_area_struct` 缓存收集 VMA 信息 | | `linux_sk_buff_cache` | 从 `sk_buff` kmem 缓存恢复数据包 | | `linux_malfind` | 查找注入/可疑的映射区域 | ### macOS 插件 (v2) 所有前缀为 `mac_` — 使用 `--profile=MacProfile` 运行: | 插件 | 描述 | |--------|-------------| | `mac_pslist` | 列出运行中的进程 | | `mac_pstree` | 显示进程树 | | `mac_psaux` | 列出带参数的进程(类似 `ps aux`) | | `mac_lsof` | 列出每个进程打开的文件 | | `mac_lsmod` | 列出已加载的内核扩展(kexts) | | `mac_proc_maps` | 输出进程内存映射 | | `mac_dump_map` | 转储特定进程内存映射 | | `mac_mount` | 列出挂载的文件系统 | | `mac_ifconfig` | 列出活动网络接口 | | `mac_netstat` | 列出网络连接 | | `mac_arp` | 打印 ARP 表 | | `mac_route` | 打印路由表 | | `mac_dmesg` | 打印内核消息缓冲 | | `mac_machine_info` | 转储机器信息 | | `mac_check_syscalls` | 检查系统调用表是否存在钩子 | | `mac_check_sysctl` | 检查 sysctl 处理器是否存在钩子 | | `mac_check_trap_table` | 检查 Mach 中断表是否存在钩子 | | `mac_trustedbsd` | 列出 TrustedBSD MAC 框架策略 | | `mac_notifiers` | 列出通知处理器 | | `mac_ip_filters` | 列出 IP 过滤钩子 | | `mac_bash` | 从内存恢复 bash 历史 | | `mac_dead_procs` | 列出死/僵尸进程 | | `mac_find_aslr_shift` | 查找内核的 ASLR 偏移值 | | `mac_volshell` | macOS 内存的交互式 Shell | | `mac_yarascan` | 使用 YARA 规则扫描内存 | | `mac_malfind` | 查找可能注入的代码 | | `mac_threads` | 列出进程线程 | | `mac_kevents` | 列出内核事件 | | `mac_contacts` | 从内存恢复联系人 | | `mac_calendar` | 从内存恢复日历事件 | | `mac_arp` | 打印 ARP 表 | | `mac_route` | 打印路由表 | | `mac_dmesg` | 打印内核消息缓冲 | | `mac_machine_info` | 转储机器信息 | | `mac_check_syscalls` | 检查系统调用表是否存在钩子 | | `mac_check_sysctl` | 检查 sysctl 处理器是否存在钩子 | | `mac_check_trap_table` | 检查 Mach 中断表是否存在钩子 | | `mac_trustedbsd` | 列出 TrustedBSD MAC 框架策略 | | `mac_notifiers` | 列出通知处理器 | | `mac_ip_filters` | 列出 IP 过滤钩子 | | `mac_bash` | 从内存恢复 bash 历史 | | `mac_dead_procs` | 列出死/僵尸进程 | | `mac_find_aslr_shift` | 查找内核的 ASLR 偏移值 | | `mac_volshell` | macOS 内存的交互式 Shell | | `mac_yarascan` | 使用 YARA 规则扫描内存 | | `mac_malfind` | 查找可能注入的代码 | | `mac_threads` | 列出进程线程 | | `mac_kevents` | 列出内核事件 | | `mac_contacts` | 从内存恢复联系人 | | `mac_calendar` | 从内存恢复日历事件 | ## Volatility 2 vs 3 对比 ### 架构对比 | 方面 | Volatility 2 | Volatility 3 | |--------|-------------|-------------| | **Python 版本** | 2.6 / 2.7 | 3.8+ | | **插件基类** | `commands.Command`(或 `AbstractWindowsCommand`、`AbstractLinuxCommand` 等) | 单一 `interfaces.plugins.PluginInterface` | | **核心方法** | `calculate()` → 生成器,`render_text()` → 输出 | `run()` → `TreeGrid`(单一方法,统一输出) | | **配置系统** | Python vtypes + 覆盖层,手动 `--profile=Win7SP1x64` | ISF(中间符号格式)JSON 文件,自动检测 | | **地址空间** | 线性链(物理 → 虚拟) | 转换层(有向无环图) | | **对象模型** | 代理对象,通过 `.v()` 访问值 | 本机 Python 类型(int、str、bytes 直接继承) | | **文件输出** | 每个插件独立实现 | 统一的 `--dump` API 与 `FileHandlerInterface` | | **命名空间** | 扁平插件名(`pslist`、`netscan`) | 层次化点表示法(`windows.pslist.PsList`、`linux.pslist.PsList`) | | **OS 检测** | 手动(用户必须指定配置) | 自动魔术(自动检测操作系统和版本) | | **插件发现** | 注册表元类系统 + `--plugins=` 路径 | 标准 Python 包发现 | | **输出格式** | 多个渲染方法(`render_text`、`render_csv` 等)或 `unified_output()` | 始终返回 `TreeGrid`,渲染器为外部 | | **符号生成** | 社区配置 + `linux_profile` / `mac_profile` 创建 | `dwarf2json`、`pdbconv` 工具生成 ISF JSON 文件 | | **依赖声明** | 隐式 | 显式 `requirements` 列表(TranslationLayerRequirement、SymbolTableRequirement 等) | ### 插件逐个映射 #### Windows | 能力 | Vol2 插件 | Vol3 插件 | 状态 | |-----------|------------|------------|--------| | 进程列表 | `pslist` | `windows.pslist.PsList` | ✅ | | 进程树 | `pstree` | `windows.pstree.PsTree` | ✅ | | 进程扫描(池) | `psscan` | `windows.psscan.PsScan` | ✅ | | 隐藏进程检测 | `psxview` | `windows.psxview.PsXView` | ✅ | | 命令行参数 | `cmdline` | `windows.cmdline.CmdLine` | ✅ | | 命令历史(COMMAND_HISTORY) | `cmdscan` | `windows.cmdscan.CmdScan` | ✅ | | 控制台输出 | `consoles` | `windows.consoles.Consoles` | ✅ | | 环境变量 | `envars` | `windows.envars.Envars` | ✅ | | DLL 列表 | `dlllist` | `windows.dlllist.DllList` | ✅ | | DLL 交叉引用 | `ldrmodules` | `windows.ldrmodules.LdrModules` | ✅ | | 打开句柄 | `handles` | `windows.handles.Handles` | ✅ | | 进程 SID | `getsids` | `windows.getsids.GetSIDs` | ✅ | | 服务 SID | `getservicesids` | `windows.getservicesids.GetServiceSIDs` | ✅ | | 进程权限 | `privs` | `windows.privileges.Privs` | ✅ | | 线程列表 | `threads` | `windows.threads.Threads` | ✅ | | 线程扫描 | `thrdscan` | `windows.thrdscan.ThrdScan` ✅ | | 注入代码检测 | `malfind` | `windows.malfind.Malfind` | ✅ | | YARA 扫描 | `yarascan` | `yarascan.YaraScan` / `windows.vadyarascan.VadYaraScan` | ✅ | | 服务扫描 | `svcscan` | `windows.svcscan.SvcScan` | ✅ | | 导入重建 | `impscan` | `windows.iat.IAT` | ✅(重构) | | API 钩子检测 | `apihooks` | — | ❌ | | 内核模块 | `modules` | `windows.modules.Modules` | ✅ | | 模块扫描(池) | `modscan` | `windows.modscan.ModScan` | ✅ | | 未加载模块 | `unloadedmodules` | `windows.unloadedmodules.UnloadedModules` | ✅ | | 驱动扫描 | `driverscan` | `windows.driverscan.DriverScan` | ✅ | | 驱动 IRP 表 | `driverirp` | `windows.driverirp.DriverIrp` | ✅ | | 设备树 | `devicetree` | `windows.devicetree.DeviceTree` | ✅ | | SSDT | `ssdt` | `windows.ssdt.SSDT` | ✅ | | 回调 | `callbacks` | `windows.callbacks.Callbacks` | ✅ | | 定时器 | `timers` | `windows.timers.Timers` | ✅ | | 文件扫描 | `filescan` | `windows.filescan.FileScan` | ✅ | | 转储文件 | `dumpfiles` | `windows.dumpfiles.DumpFiles` | ✅ | | MFT 扫描 | `mftparser` | `windows.mftscan.MFTScan` | ✅ | | MBR | `mbrparser` | `windows.mbrscan.MBRScan` | ✅ | | 符号链接扫描 | `symlinkscan` | `windows.symlinkscan.SymlinkScan` | ✅ | | 互斥体扫描 | `mutantscan` | `windows.mutantscan.MutantScan` | ✅ | | 注册表 Hive 列表 | `hivelist` | `windows.registry.hivelist.HiveList` | ✅ | | 注册表 Hive 扫描 | `hivescan` | `windows.registry.hivescan.HiveScan` | ✅ | | 注册表键打印 | `printkey` | `windows.registry.printkey.PrintKey` | ✅ | | UserAssist | `userassist` | `windows.registry.userassist.UserAssist` | ✅ | | 密码哈希 | `hashdump` | `windows.hashdump.Hashdump` | ✅ | | LSA 机密 | `lsadump` | `windows.lsadump.Lsadump` | ✅ | | 缓存哈希 | `cachedump` | `windows.cachedump.Cachedump` | ✅ | | 网络扫描 | `netscan` | `windows.netscan.NetScan` | ✅ | | 网络状态 | — | `windows.netstat.NetStat` | 🆕 | | PE 转储 | `procdump` / `dlldump` / `moddump` | `windows.pedump.PEDump` | ✅(统一) | | PE 版本信息 | `verinfo` | `windows.verinfo.VerInfo` | ✅ | | 内存映射 | `memmap` | `windows.memmap.Memmap` | ✅ | | VAD 信息 | `vadinfo` | `windows.vadinfo.VadInfo` | ✅ | | VAD 遍历 | `vadwalk` | `windows.vadwalk.VadWalk` | ✅ | | 字符串 | `strings` | `windows.strings.Strings` | ✅ | | 大页池 | — | `windows.bigpools.BigPools` | 🆕 | | 池扫描器 | — | `windows.poolscanner.PoolScanner` | 🆕 | | 会话 | `sessions` | `windows.sessions.Sessions` | ✅ | | OS 信息 | `imageinfo` | `windows.info.Info` | ✅(重构) | | 崩溃信息 | `crashinfo` | `windows.crashinfo.Crashinfo` | ✅ | | Timeliner | `timeliner` | `timeliner.Timeliner` | ✅ | | TrueCrypt | — | `windows.truecrypt.Passphrase` | ✅ | | ShellBags | `shellbags` | — | ❌ | | Shimcache | `shimcache` | `windows.shimcachemem.ShimcacheMem` | ✅(重构) | | Amcache | — | `windows.amcache.Amcache` | 🆕 | | 计划任务 | — | `windows.scheduled_tasks.ScheduledTasks` | 🆕 | | 桌面扫描 | `deskscan` | `windows.deskscan.DeskScan` | ✅ | | 窗口站 | — | `windows.windowstations.WindowStations` | ✅ | | 截图 | `screenshot` | — | ❌ | | 剪贴板 | `clipboard` | — | ❌ | | 原子扫描 | `atomscan` | — | ❌ | | 事件钩子 | `eventhooks` | — | ❌ | | 消息钩子 | `messagehooks` | — | ❌ | | GDI 定时器 | `gditimers` | — | ❌ | | IDT | `idt` | — | ❌ | | GDT | `gdt` | — | ❌ | | Hive 转储 | `hivedump` | — | ❌ | | 转储注册表 | `dumpregistry` | — | ❌ | | 审核策略 | `auditpol` | — | ❌ | | BIOS 键盘 | `bioskbd` | — | ❌ | | 证书转储 | `dumpcerts` | — | ❌ | | Notepad | `notepad` | — | ❌ | | DLL 转储 | `dlldump` | `windows.pedump.PEDump` | ✅(合并) | | 模块转储 | `moddump` | `windows.pedump.PEDump` | ✅(合并) | | Hollow 进程 | 仅社区 | `windows.hollowprocesses.HollowProcesses` | 🆕(原为社区) | | 进程幽灵 | — | `windows.processghosting.ProcessGhosting` | 🆕 | | 直接系统调用 | — | `windows.direct_system_calls.Direct_System_Calls` | 🆕 | | 间接系统调用 | — | `windows.indirect_system_calls.Indirect_System_Calls` | 🆕 | | 未挂钩系统调用 | — | `windows.unhooked_system_calls.Unhooked_System_Calls` | 🆕 | | 可疑线程 | — | `windows.suspicious_threads.Suspicious_Threads` | 🆕 | | Skeleton Key 检查 | — | `windows.skeleton_key_check.Skeleton_Key_Check` | 🆕 | | PEB 伪装 | — | `windows.pebmasquerade.PEBMasquerade` | 🆕 | | ETW 补丁检测 | — | `windows.etwpatch.EtwPatch` | 🆕 | | 服务列表 | — | `windows.svclist.SvcList` | 🆕 | | 服务差异 | — | `windows.svcdiff.SvcDiff` | 🆕 | | 驱动-模块匹配 | — | `windows.drivermodule.DriverModule` | 🆕 | | 调试寄存器 | — | `windows.debugregisters.DebugRegisters` | 🆕 | | KPCR 结构 | `kpcrscan` | `windows.kpcrs.KPCRs` | ✅(重构) | | PE 符号 | — | `windows.pe_symbols.PESymbols` | 🆕 | | 孤儿核线程 | — | `windows.orphan_kernel_threads.Orphan_Kernel_Threads` | 🆕 | | 挂起线程 — | `windows.suspended_threads.Suspended_Threads` | 🆕 | | VAD 正则扫描 | — | `windows.vadregexscan.VadRegExScan` | 🆕 | #### Linux | 能力 | Vol2 插件 | Vol3 插件 | 状态 | |-----------|------------|------------|--------| | 进程列表 | `linux_pslist` | `linux.pslist.PsList` | ✅ | | 进程树 | `linux_pstree` | `linux.pstree.PsTree` | ✅ | | 进程 aux | `linux_psaux` | `linux.psaux.PsAux` | ✅ | | 进程扫描 | `linux_psscan` | `linux.psscan.PsScan` | ✅ | | Bash 历史 | `linux_bash` | `linux.bash.Bash` | ✅ | | 环境变量 | `linux_bash_env` | `linux.envars.Envars` | ✅ | | 内核模块 | `linux_lsmod` | `linux.lsmod.Lsmod` | ✅ | | 隐藏模块 | `linux_hidden_modules` | `linux.hidden_modules.Hidden_modules` | ✅ | | 系统调用检查 | `linux_check_syscall` | `linux.check_syscall.Check_syscall` | ✅ | | IDT 检查 | `linux_check_idt` | `linux.check_idt.Check_idt` | ✅ | | 凭证检查 | `linux_check_creds` | `linux.check_creds.Check_creds` | ✅ | | AF_INFO 检查 | `linux_check_afinfo` | `linux.check_afinfo.Check_afinfo` | ✅ | | 键盘通知 | `linux_keyboard_notifiers` | `linux.keyboard_notifiers.Keyboard_notifiers` | ✅ | | 打开文件 | `linux_lsof` | `linux.lsof.Lsof` | ✅ | | 进程映射 | `linux_proc_maps` | `linux.proc.Maps` | ✅ | | 网络连接 | `linux_netstat` | `linux.sockstat.Sockstat` | ✅(重构) | | 网络接口 | `linux_ifconfig` | `linux.ip.Addr` / `linux.ip.Link` | ✅(重构) | | 挂载点 | `linux_mount` | `linux.mountinfo.MountInfo` | ✅ | | 内核消息 | `linux_dmesg` | `linux.dmesg.Dmesg` / `linux.kmsg.Kmsg` | ✅ | | IOMEM | `linux_iomem` | `linux.iomem.IOMem` | ✅ | | CPU 信息 | `linux_cpuinfo` | `linux.cpuinfo.CpuInfo` | ✅ | | 查找文件 | `linux_find_file` | `linux.find_file.Find_File` | 🆕 | | VMA 缓存 | `linux_vma_cache` | `linux.vma_cache.VmaCache` | 🆕 | | sk_buff 缓存 | `linux_sk_buff_cache` | `linux.sk_buff_cache.SkBuffCache` | 🆕 | | 恶意模块 | `linux_malfind` | `linux.malfind.Malfind` | ✅ | ## 社区与第三方插件 ### Volatility 3 社区插件 #### Community3 Repository Plugins | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `Block_PTE_Malfind` | Frank Block | 基于 PTE 的隐藏注入代码检测 | [Community3](https://github.com/volatilityfoundation/community3) | | `LastPass` | Kevin Breen | 从内存恢复 LastPass 凭证 | [Community3](https://github.com/volatilityfoundation/community3) | | `CobaltStrike` | Kevin Breen | Cobalt Strike Beacon 检测与解析 | [Community3](https://github.com/volatilityfoundation/community3) | | `RichHeader` | Kevin Breen | 从进程内存解析 PE Rich Header | [Community3](https://github.com/volatilityfoundation/community3) | | `CheckSpoof` | Or Chechik & Weber | 进程伪装 / PPID 伪装检测 | [Community3](https://github.com/volatilityfoundation/community3) | | `Hyper_V` | Gerhart | Hyper-V 虚拟机内存分析 | [Community3](https://github.com/volatilityfoundation/community3) | | `Mountinfo` | Gustavo Moreira | Linux 挂载点枚举 | [Community3](https://github.com/volatilityfoundation/community3) | | `Netfilter` | Gustavo Moreira | Linux netfilter/iptables 规则 | [Community3](https://github.com/volatilityfoundation/community3) | | `Multi_Yara` | Silva | 增强型多 YARA 规则扫描 | [Community3](https://github.com/volatilityfoundation/community3) | | `Evtx` | Stelte | 从内存解析 Windows 事件日志(EVTX) | [Community3](https://github.com/volatilityfoundation/community3) | | `Syslog` | Stelte | 从内存解析 Linux syslog 日志 | [Community3](https://github.com/volatilityfoundation/community3) | | `OpenSSH` | Vergeer | 恢复 OpenSSH 会话密钥与数据 | [Community3](https://github.com/volatilityfoundation/community3) | | `VolWeb` | Guyard | Volatility 3 的 Web 界面集成 | [Community3](https://github.com/volatilityfoundation/community3) | | `Docker` | Amir Sheffer & Ofek Shaked | 从内存进行 Docker 容器取证 | [Community3](https://github.com/volatilityfoundation/community3) | | `BTC/Cryptoscan` | Team_BTC | 扫描加密货币钱包特征 | [Community3](https://github.com/volatilityfoundation/community3) | | `Vol3xp / VolExp` | Aviel Zohar | 基于 GUI 的 Vol3 探索器 | [Community3](https://github.com/volatilityfoundation/community3) | | `PE-Shellcode Plugins` | Various | PackerList、DirectSyscalls、ApiHash、MasqueradeProcess 检测 | [Community3](https://github.com/volatilityfoundation/community3) | #### Third-Party Plugins (Standalone Repositories) | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `pypykatz-volatility3` | SkelSec | Mimikatz 风格的凭证提取(LSASS、SAM、LSA) | [GitHub](https://github.com/skelsec/pypykatz-volatility3) | | `volatility3-autoruns` | Telindus-CSIRT | 检测 Windows 持久化机制(ASEPs) | [GitHub](https://github.com/Telindus-CSIRT/volatility3-autoruns) | | `BPFVol3` | Valentin Obst | Linux BPF/eBPF 分析(7 个插件,2023 竞赛第 1 名) | [GitHub](https://github.com/vobst/BPFVol3) | | `btf2json` | Valentin Obst | 从 BPF 类型格式生成 Linux 配置 | [GitHub](https://github.com/vobst/btf2json) | | `Prefetch` | forensicxlab | 解析 Windows Prefetch 文件 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `InodePages` | forensicxlab | 从 inode 页缓存恢复 Linux 文件内容 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `AnyDesk` | forensicxlab | 提取 AnyDesk 远程桌面特征 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `KeePass` | forensicxlab | 从内存恢复 KeePass 密码数据库 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `Hibernation Layer` | forensicxlab | hiberfile.sys 转换层 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `ADS Scanning` | forensicxlab | NTFS 备用数据流扫描 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `IAT Plugin` | forensicxlab | Windows 导入地址表重建 | [GitHub](https://github.com/forensicxlab/volatility3_plugins) | | `CobaltStrike` | kevthehermit | Cobalt Strike Beacon 检测与解析 | [GitHub](https://github.com/kevthehermit/volatility3_plugins) | | `RichHeader` | kevthehermit | 解析进程内存中的 PE Rich Header | [GitHub](https://github.com/kevthehermit/volatility3_plugins) | | `ZoneID` | kevthehermit | 提取 Zone.Identifier ADS(下载来源)数据 | [GitHub](https://github.com/kevthehermit/volatility3_plugins) | | `volatility-docker` | Amir Sheffer & Ofek Shaked | Docker 容器内存取证 | [GitHub](https://github.com/amir9339/volatility-docker) | | `volatility-gpg` | Kudelski Security | 从内存恢复 GPG 密码短语与密钥 | [GitHub](https://github.com/kudelskisecurity/volatility-gpg) | | `volatility3-bitlocker` | Lorelyai | 提取 BitLocker FVEK(完整卷加密密钥) | [GitHub](https://github.com/lorelyai/volatility3-bitlocker) | | `Criminalip Plugins` | AI Spera | CTI 增强(IP 信誉、威胁情报) | [GitHub](https://github.com/criminalip/Criminalip-Volatility3-Plugins) | | `imgmalfind` | f-block | 增强 malfind(带图像/PE 分析) | [GitHub](https://github.com/f-block/volatility-plugins) | | `apisearch` | f-block | 在进程中搜索特定 API 调用 | [GitHub](https://github.com/f-block/volatility-plugins) | | `ProcInjectionsFind` | Darshan Tank | 高级进程注入检测 | [GitHub](https://github.com/darshantank/ProcInjectionsFind) | | `ModXRef` | CrySyS Lab | 基于跨视图的 Linux 内核模块隐藏检测 | [GitHub](https://github.com/CrySyS/ModXRef) | | `etw-scan` | JPCERT/CC | Windows 事件追踪(ETW)取证(2024 竞赛) | [GitHub](https://github.com/JPCERTCC/etw-scan) | | `impfuzzy (Vol3)` | JPCERT/CC | Vol3 的导入模糊哈希(用于恶意软件相似性分析) | [GitHub](https://github.com/JPCERTCC/impfuzzy) | | `modex` | reverseame | 尽可能完整地提取模块 | [GitHub](https://github.com/reverseame/modex) | | `rootkit_plugins` | Asaf Eitani | Linux Rootkit 检测(check_seqops、check_fops) | [GitHub](https://github.com/AsafEitani/rootkit_plugins) | | `ebpf_programs_plugin` | Asaf Eitani | eBPF Rootkit 检测与自动化分析(2023 竞赛) | [GitHub](https://github.com/AsafEitani/ebpf_programs_plugin) | | `volatility-scripts` | Abyss-W4tcher | Linux Rootkit 检测(check_ftrace、check_tracepoints、check_unlinked_modules) | [GitHub](https://github.com/Abyss-W4tcher/volatility-scripts) | | `Volatility3-tampering-plugin` | Gasu16 | Windows Defender 篡改检测(2024 竞赛) | [GitHub](https://github.com/Gasu16/Volatility3-tampering-plugin) | | `dumpcerts` | daddycocoaman | RSA 证书与 PKCS#8 密钥提取 | [GitHub](https://github.com/daddycocoaman/volplugins) | | `vol3-plugins` | spitfirerxf | Notepad、kusertime、Sticky Notes、EVTXLog 插件 | [GitHub](https://github.com/spitfirerxf/vol3-plugins) | | `GLASS-volatility` | KrazyC1 | 内存中恶意域名与语言检测 | [GitHub](https://github.com/KrazyC1/GLASS-volatility) | ### Volatility 2 社区插件 #### Malware & Threat Detection | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `hollowfind` | Monnappa K A | 检测进程空洞攻击 | [GitHub](https://github.com/monnappa22/HollowFind) | | `openioc_scan` | Takahiro Haruyama | 使用 OpenIOC 指标扫描内存 | [GitHub](https://github.com/volatilityfoundation/community/tree/master/TakahiroHaruyama) | | `cobaltstrikescan` | JPCERT/CC | 检测 Cobalt Strike Beacon | [GitHub](https://github.com/JPCERTCC/aa-tools) | | `MalConfScan` | JPCERT/CC | 从内存提取恶意软件配置数据 | [GitHub](https://github.com/JPCERTCC/MalConfScan) | | `doppelfind` | — | 检测进程 doppelganging | [Community](https://github.com/volatilityfoundation/community) | | `zbotscan` | — | 检测 Zeus/Zbot 恶意软件特征 | [Community](https://github.com/volatilityfoundation/community) | | `zeusscan` | — | Zeus 恶意软件扫描与检测 | [Community](https://github.com/volatilityfoundation/community/tree/master/ZeusScan) | | `apt17scan` | JPCERT/CC | 检测 APT17 恶意软件特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/JPCERT) | | `malprocfind` | Csaba Barta | 查找具有可疑特征的进程 | [Community](https://github.com/volatilityfoundation/community/tree/master/CsabaBarta) | | `malfofind` | Dima Pshoul | 查找仅存在于内存中的可执行区域 | [Community](https://github.com/volatilityfoundation/community/tree/master/DimaPshoul) | | `malthfind` | Dima Pshoul | 恶意线程查找器 | [Community](https://github.com/volatilityfoundation/community/tree/master/DimaPshoul) | | `callstacks` | Dima Pshoul | 线程调用栈分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/DimaPshoul) | | `processfuzzyhash` | — | 计算进程的模糊哈希用于相似性分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/ProcessFuzzyHash) | | `sigcheck` | — | 验证内存中可执行文件的代码签名 | [Community](https://github.com/volatilityfoundation/community) | | `ssdeepscan` | Dave Lasalle | 使用 ssdeep 模糊哈希扫描内存 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `malfinddeep` | Dave Lasalle | 扩展 malfind 的深度分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `apihooksdeep` | Dave Lasalle | 扩展 apihooks 的深度分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `dyrescan` | Kudelski Security | 检测 Dyre/Dyreza 银行木马 | [Community](https://github.com/volatilityfoundation/community/tree/master/KudelskiSecurity) | | `impfuzzy` | JPCERT/CC | 导入模糊哈希用于恶意软件相似性分析 | [GitHub](https://github.com/JPCERTCC/impfuzzy) | | `ghostrat` | Monnappa K A | 检测 GhostRAT 恶意软件特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/MonnappaKa) | | `psinfo` | Monnappa K A | 提供具有安全检查的详细进程信息 | [Community](https://github.com/volatilityfoundation/community/tree/master/MonnappaKa) | | `poisonivy` | Andreas Schuster | 检测 Poison Ivy RAT | [Community](https://github.com/volatilityfoundation/community/tree/master/AndreasSchuster) | | `plugx` | Fabien Perigaud | 检测 PlugX 恶意软件特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabienPerigaud) | | `browserhooks` | ESET | 浏览器钩子检测(IE、Firefox、Chrome) | [Community](https://github.com/volatilityfoundation/community/tree/master/ESET_Browserhooks) | | `psempire` | Slavi Parpulev | 检测内存中的 PowerShell Empire 活动 | [Community](https://github.com/volatilityfoundation/community/tree/master/SlaviParpulev) | | `powersh` | Cesare Pizzi | PowerShell 脚本提取与分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/CesarePizzi) | | `gargoyle` | Aliz Hammond | 检测 Gargoyle ROP/APC 攻击技术 | [Community](https://github.com/volatilityfoundation/community/tree/master/AlizHammond) | | `findevilinfo` | Tyrer Halfpop | 查找邪恶进程信息 | [Community](https://github.com/volatilityfoundation/community/tree/master/TyperHalfpop) | | `findevilmem` | Tyrer Halfpop | 查找内存中的邪恶区域 | [Community](https://github.com/volatilityfoundation/community/tree/master/TyperHalfpop) | | `findevilproc` | Tyrer Halfpop | 基于启发式查找邪恶进程 | [Community](https://github.com/volatilityfoundation/community/tree/master/TyperHalfpop) | | `antianalysis` | itayk | 检测反分析与反调试技术 | [Community](https://github.com/volatilityfoundation/community/tree/master/itayk) | | `apifinder` | itayk | 查找 API 调用与 | [Community](https://github.com/volatilityfoundation/community/tree/master/itayk) | | `fwhooks` | NCC Group | 检测防火墙钩子与网络过滤修改 | [Community](https://github.com/volatilityfoundation/community/tree/master/NCCGroup) | #### Credential & Encryption Extraction | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `mimikatz` | Francesco Picasso | Mimikatz 风格的 Windows 凭证提取 | [Community](https://github.com/volatilityfoundation/community/tree/master/FrancescoPicasso) | | `bitlocker` (Thomas White) | Thomas White | 从内存提取 BitLocker 加密密钥 | [Community](https://github.com/volatilityfoundation/community/tree/master/ThomasWhite) | | `bitlocker` (tribalchicken) | tribalchicken | 从内存恢复 BitLocker FVEK | [GitHub](https://github.com/tribalchicken/volatility-bitlocker) | | `bitlocker` (elceef) | Marcin Ulikowski | BitLocker 密钥提取插件 | [Community](https://github.com/volatilityfoundation/community/tree/master/MarcinUlikowski) | | `filevault2` | Thomas White | 从 macOS 内存恢复 FileVault 2 加密密钥 | [Community](https://github.com/volatilityfoundation/community/tree/master/ThomasWhite) | | `lastpass` | Kevin Breen | 从内存提取 LastPass 主密码/保险库数据 | [Community](https://github.com/volatilityfoundation/community/tree/master/KevinBreen) | | `openvpn` | Philip Huppert | 从内存提取 OpenVPN 凭证 | [Community](https://github.com/volatilityfoundation/community/tree/master/PhilipHuppert) | | `openssh_sessionkeys` | — | 从内存恢复 OpenSSH 会话密钥 | [Community](https://github.com/volatilityfoundation/community) | | `keepassx` | Frank Block | 从内存提取 KeePassX 密码数据库 | [Community](https://github.com/volatilityfoundation/community/tree/master/FrankBlock) | | `bitcoin` | Cem Gurkok | 从内存提取比特币钱包特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/CemGurkok) | | `rsakey` | Philip Huppert | 从内存提取 RSA 私钥 | [Community](https://github.com/volatilityfoundation/community/tree/master/PhilipHuppert) | | `ssh_agent_key` | Ying Li | 从内存恢复 SSH 代理密钥 | [Community](https://github.com/volatilityfoundation/community/tree/master/YingLi) | | `rdpkeys` | Bartosz Inglot | 提取 RDP 会话密钥用于流量解密 | [Community](https://github.com/volatilityfoundation/community/tree/master/BartoszInglot) | #### Browser & Application Forensics | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `chromehistory` | Dave Lasalle | 从内存提取 Chrome 浏览历史 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `chrome_ragamuffin` | Alessandro DeVito | Chrome 内部分析(Cookie、History、Session) | [Community](https://github.com/volatilityfoundation/community/tree/master/AlessandroDeVito) | | `firefoxhistory` | Dave Lasalle | 从内存提取 Firefox 浏览历史 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `LinuxFirefox` | Dat Quoc | 从 Linux 内存转储提取 Firefox 特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/DatQuoc) | | `idxparser` | Dave Lasalle | 解析 Java IDX 缓存文件 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `sqlitefind` | Michael Brown | 查找并解析内存中的 SQLite 数据库 | [Community](https://github.com/volatilityfoundation/community/tree/master/MichaelBrown) | | `facebook_extractor` | Nick Gk | 从内存提取 Facebook 聊天与个人资料数据 | [Community](https://github.com/volatilityfoundation/community/tree/master/NickGk) | | `notepad` | — | 从内存恢复 Notepad 内容 | Built-in | #### System Artifacts & Persistence | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `autoruns` | Thomas Chopitea | 检测 Windows 持久化机制(自启动项) | [Community](https://github.com/volatilityfoundation/community/tree/master/ThomasChopitea) | | `prefetch` | Dave Lasalle | 从内存解析 Prefetch 文件 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `uninstallinfo` | Dave Lasalle | 从 Uninstall 注册表键列出已安装程序 | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `usbstor` | James Hall & Kevin Breen | 从注册表提取 USB 设备历史 | [Community](https://github.com/volatilityfoundation/community/tree/master/JamesHall_KevinBreen) | | `trustrecords` | Dave Lasalle | 提取 Office TrustRecords(最近打开的文档) | [Community](https://github.com/volatilityfoundation/community/tree/master/DaveLasalle) | | `dnscache` | — | 从内存提取 DNS 解析器缓存 | [Community](https://github.com/volatilityfoundation/community) | | `schtasks` | Bartosz Inglot | 从内存提取计划任务 | [Community](https://github.com/volatilityfoundation/community/tree/master/BartoszInglot) | | `shimcachemem` | Fred House et al. | 直接从内存解析 Shimcache 条目 | [Community](https://github.com/volatilityfoundation/community/tree/master/ShimcacheMemory) | | `usnparser` | Tom Spencer | 解析 NTFS USN 日志 | [Community](https://github.com/volatilityfoundation/community/tree/master/TomSpencer) | | `usnjrnl` | Csaba Barta | 提取 NTFS USN 日志记录 | [Community](https://github.com/volatilityfoundation/community/tree/master/CsabaBarta) | | `indx` | Csaba Barta | 解析 NTFS INDX 记录 | [Community](https://github.com/volatilityfoundation/community/tree/master/CsabaBarta) | | `logfile` | Csaba Barta | 解析 NTFS $LogFile | [Community](https://github.com/volatilityfoundation/community/tree/master/CsabaBarta) | | `baseline` | Csaba Barta | 将内存转储与已知良好基准比较 | [Community](https://github.com/volatilityfoundation/community/tree/master/CsabaBarta) | | `toastplugin` | — | 从内存提取 Windows Toast 通知数据 | [Community](https://github.com/volatilityfoundation/community/tree/master/WindowsToastNotifications) | | `wnf` | Citronneur | 分析 Windows 通知设施(WNF)状态数据 | [Community](https://github.com/volatilityfoundation/community/tree/master/Citronneur) | | `system_info` | Glenn Edwards | 从内存提取详细的系统信息 | [Community](https://github.com/volatilityfoundation/community/tree/master/GlennEdwards) | #### Network Analysis | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `ndispktscan` | Adam Bridge | 扫描 NDIS 网络数据包 | [Community](https://github.com/volatilityfoundation/community/tree/master/AdamBridge) | | `carve_packets` | Nichlas Holm | 从内存中提取网络数据包 | [Community](https://github.com/volatilityfoundation/community/tree/master/NichlasHolm) | | `osint` | Tran Vien Ha | 对网络特征进行 OSINT 增强 | [Community](https://github.com/volatilityfoundation/community/tree/master/TranVienHa) | #### Kernel & Advanced Analysis | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `threadmap` | KSL Group | 线程映射与可视化 | [Community](https://github.com/volatilityfoundation/community/tree/master/KSLGroup_Threadmap) | | `kstackps` | Mariano Graziano | 基于内核栈的进程列表 | [Community](https://github.com/volatilityfoundation/community/tree/master/MarianoGraziano) | | `heap_analysis` | Frank Block | Windows 堆结构分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/FrankBlock) | | `windbg` | Alexander Tarasenko | WinDbg 兼容输出集成 | [Community](https://github.com/volatilityfoundation/community/tree/master/AlexanderTarasenko) | | `vmtools` | Elmar Nabigaev | 检测内存中的 VMware Tools 特征 | [Community](https://github.com/volatilityfoundation/community/tree/master/ElmarNabigaev) | | `symbolizemod` | Javier Vallejo | 为内核模块符号化 | [Community](https://github.com/volatilityfoundation/community/tree/master/JavierVallejo) | | `profilescan` | Stanislas Lejay | 自动检测内存转储的配置文件 | [Community](https://github.com/volatilityfoundation/community/tree/master/StanislasLejay) | | `attributeht` | Joe Greenwood | 内核对象属性分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/JoeGreenwood) | | `shemulator` | — | Shell 模拟器扩展 | [Community](https://github.com/kevthehermit/volatility3_plugins) | | `python_strings` | Ying Li | 从 Linux 内存提取 Python 字符串对象 | [Community](https://github.com/volatilityfoundation/community/tree/master/YingLi) | | `msdecompress` | Jamaal Speights | Microsoft 压缩格式解压 | [Community](https://github.com/volatilityfoundation/community/tree/master/JamaalSpeights) | | `apx_maps` | Lorenz Liebler | APX 内存映射分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/LorenzLiebler) | | `saveconfig` | Andrew Cook | 保存 Volatility 配置以确保可重复性 | [Community](https://github.com/volatilityfoundation/community/tree/master/AndrewCook) | | `scanprof` | Mike Auty | 分析配置文件扫描性能 | [Community](https://github.com/volatilityfoundation/community/tree/master/MikeAuty) | #### Linux 插件(社区) | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `linux_xwindows` | Adam Bridge | 分析 Linux X Window 系统 | [Community](https://github.com/volatilityfoundation/community/tree/master/AdamBridge) | | `linux_mem_diff` | Monnappa K A | 对 Linux 内存转储进行差异分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/MonnappaKa) | | `zsh` | Frank Block | 从内存提取 Zsh 历史与状态 | [Community](https://github.com/volatilityfoundation/community/tree/master/FrankBlock) | | `cgrp_dfl_pslist` | Fabio Pagani | 通过 cgroup 默认层次结构列出进程 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `css_set_pslist` | Fabio Pagani | 通过 css_set 结构列出进程 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `inode_pslist` | Fabio Pagani | 通过 /proc inode 结构列出进程 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `workqueues` | Fabio Pagani | 分析 Linux 内核 workqueues | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `terminated_tasks` | Fabio Pagani | 恢复已终止任务信息 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `mod_tree` | Fabio Pagani | 内核模块树分析 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | | `kallsyms` | Fabio Pagani | 提取 kallsyms 内核符号表 | [Community](https://github.com/volatilityfoundation/community/tree/master/FabioPagani) | #### Format Support & Utilities | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `aff4` | — | AFF4 取证镜像格式支持 | [Community](https://github.com/volatilityfoundation/community/tree/master/AFF4) | | `ewf` | — | EWF(专家证人格式)镜像支持 | [Community](https://github.com/volatilityfoundation/community/tree/master/EWF) | | `vol-livemigration` | Philip Huppert | Live VM 迁移地址空间支持 | [Community](https://github.com/volatilityfoundation/community/tree/master/PhilipHuppert) | #### Analysis & Visualization Tools | 插件 | 作者 | 描述 | 链接 | |--------|--------|-------------|------| | `VolExp` | Aviel Zohar | Vol3 内存分析 GUI 探索器 | [GitHub](https://github.com/memoryforensics1/VolExp) | | `VolDiff` | aim4r | 对两个内存转储进行差异分析并高亮变更 | [Community](https://github.com/volatilityfoundation/community/tree/master/aim4r) | | `autoVolatility` | carlospolop | 自动批量执行 Volatility 插件 | [GitHub](https://github.com/carlospolop/autoVolatility) | | `vol_genprofile` | — | 自动生成 Linux 配置文件 | [Community](https://github.com/volatilityfoundation/community) | ### Volatility Plugin Contest Winners [Volatility 插件竞赛](https://volatilityfoundation.org/volatility-plugin-contest/) 是每年举办的竞赛,产生了许多优秀的社区插件。 | 年份 | 名次 | 获奖者 | 插件 / 贡献 | 链接 | |------|------|--------|----------------------|------| | **2024** | 1st | Valentin Obst | btf2json — Linux 配置从 BPF 类型格式生成 | [Results](https://volatilityfoundation.org/the-2024-volatility-plugin-contest-results-are-in/) | | | 2nd | Sylvain Peyrefitte | scrings(ScringsScan & VadScringsScan)— 语法感知脚本扫描 | | | | 3rd (tie) | Kartik N. Iyer & Parag H. Rughani | TLS 回调检测与反汇编插件 | | | | 3rd (tie) | Shusei Tomonaga (JPCERT/CC) | ETW Scanner for Volatility 3 | | | **2023** | 1st | Valentin Obst | BPFVol3 — Linux BPF 内存取证(7 个插件) | [Results](https://volatilityfoundation.org/the-2023-volatility-plugin-contest-results-are-in/) | | | 2nd | Abyss Watcher | 符号收集与 Linux Rootkit 检测插件 | | | | 3rd (tie) | Asaf Eitani | eBPF Programs Plugin — eBPF Rootkit 检测 | | | | 3rd (tie) | Felix Guyard (forensicxlab) | Hibernation layer, ADS scanning, KeePass, IAT plugin | | | **2022** | 1st | Felix Guyard (forensicxlab) | Prefetch, InodePages, AnyDesk 插件及 VolWeb UI | [Results](https://volatilityfoundation.org/the-2022-volatility-plugin-contest-results-are-in/) | | | 2nd | Asaf Eitani | check_seqops, check_fops, fileless — Linux Rootkit 检测 | | | | 3rd | Aviel Zohar | HandleXView with Vol3xp GUI | | | **2021** | 1st | Amir Sheffer & Ofek Shaked | Linux Namespaces 支持与 Docker 取证插件 | [Results](https://volatilityfoundation.org/the-2021-volatility-plugin-contest-results-are-in/) | | | 2nd | Kevin Breen | ISF Symbol Generator, Cobalt Strike, Rich Header, LastPass | | | | 3rd | Frank Block | PTE 分析插件(用于检测注入代码) | | | **2020** | 1st | Gustavo Moreira | Netfilter — Linux iptables/netfilter 规则提取 | [Results](https://volatilityfoundation.org/the-2020-volatility-plugin-contest-results-are-in/) | | | 2nd | Jelle Vergeer | SSHKeys — OpenSSH 会话密钥恢复 | | | | 3rd | Aviel Zohar | VolExp, StructAnalyzer, WinObjGUI, PFNInfo, RAMMap | | | **2019** | 1st | Antoine Brodin | FreeBSD 支持 | [Results](https://volatilityfoundation.org/results-from-the-2019-volatility-contests-are-in/) | | | 2nd | Blaine Stancill | Windows 10 内存压缩支持 | | | | 3rd | Shusei Tomonaga (JPCERT/CC) | MalConfScan — 恶意软件配置提取 | | | | 4th | Shachaf Atun | WinObj 和 TokenImp 插件 | | | | 5th | Fabio Pagani | Linux kallsyms 提取插件 | | | **2018** | 1st | Aliz Hammond | Gargoyle — ROP/APC 攻击技术检测 | [Results](https://volatilityfoundation.org/results-from-the-2018-volatility-contests-are-in/) | | | 2nd | Aleksander Oesterud | MemoryDecompression — 压缩内存支持 | | | | 3rd | Lorenz Liebler et al. | Approxis — 近似页面匹配 | | | | 4th | David Quesada | CSV 导出与 Splunk 仪表板集成 | | | | 5th | Peter Casey | Vivedump — HTC Vive VR 设备取证 | | | **2017** | 1st | Xabier Ugarte-Pedrero (Cisco Talos) | PyREBox — Python 脚本化 RE 沙箱 | [Results](https://volatilityfoundation.org/results-from-the-5th-annual-2017-volatility-plugin-contest-are-in/) | | | 2nd | KSL Group (Ness, Atun, Stein) | Threadmap — 线程映射与可视化 | | | | 3rd | Peter Kalnai & Michal Poslusny (ESET) | Browserhooks —浏览器钩子检测 | | | | 4th (tie) | Michael Brown | SQLite 特征恢复 (sqlitefind) | | | | 4th (tie) | Adam Bridge | Linux X Window 分析插件 | | | **2016** | 1st | Monnappa K A | hollowfind — 进程空洞攻击检测 | [Results](https://volatilityfoundation.org/results-from-the-2016-volatility-plugin-contest-are-in/) | | | 2nd | Kevin Breen | VolUtility Web UI 和 LastPass 凭证恢复 | | | | 3rd | Dima Pshoul | Advanced Malware Hunter's Kit (malfofind, malthfind, callstacks) | | | | 4th | Mariano Graziano | ROP 载荷分析与 Linux 内核符号查找 | | | | 5th | Bart Inglot | RDP 密钥提取与会话回放 | | | | Notable | Thomas White | Mac FileVault2 和 BitLocker 密钥提取 | | **研究论文** | 标题 | 作者 | 年份 | 发表会议 | 摘要 | 链接 | |------|------|------|----------|------|------| | The Evolution of Volatile Memory Forensics | Golden G. Richard III, Andrew Case | 2022 | JDFSL / MDPI | 对内存取证工具与技术的全面综述 | [Paper](https://www.mdpi.com/2624-800X/2/3/28) | | Detecting Hidden Kernel Modules in Memory Snapshots | Roland Nagy et al. (CrySyS Lab) | 2025 | DFRWS 2025 | 跨视图 LKM 检测插件;在 55 个 Rootkit 镜像上测试 | [Paper](https://dfrws.org/wp-content/uploads/2025/05/Detecting-hidden-kernel-modules-in-memory-snapshots.pdf) | | Windows Memory Forensics: Detecting Unintentionally Hidden Injected Code by Examining Page Table Entries | Frank Block et al. | 2019 | DFRWS USA 2019 | 基于 PTE 的注入代码检测插件 | [Paper](https://dfrws.org/wp-content/uploads/2019/06/2019_USA_paper-windows_memory_forensics_detecting_unintentionally_hidden_injected_code_by_examining_page_table_entries.pdf) | | Memory Analysis of .NET and .NET Core Applications | Various | 2022 | DFRWS USA 2022 | Volatility 插件用于 .NET 运行时特征检测 | [Paper](https://dfrws.org/wp-content/uploads/2022/07/2022_usa_paper-memory_analysis_of_net_and_net_core_applications.pdf) | | Duck Hunt: Memory Forensics of USB Attack Platforms | Various | 2021 | DFRWS USA 2021 | 两个插件(usbhunt、dhcphunt)用于 USB 攻击特征提取 | [Paper](https://dfrws.org/wp-content/uploads/2021/09/2021-usa-paper-20-duck_hunt_memory_forensics_of_usb_attack_platforms.pdf) | ## 教程与学习资源 | 教程 | 链接 | |------|------| | [Volatility 官方文档](#official-documentation) | | [Volatility 3 入门指南](#volatility-3-minimal-plugin-example) | | [Volatility 2 入门指南](#volatility-2-minimal-plugin-example) | | [插件开发指南](#plugin-development-guide) | | [Volatility 3 插件架构](#volatility-3-plugin-architecture) | | [Volatility 2 插件架构](#volatility-2-plugin-architecture) | | [Porting from V2 to V3](#porting-from-v2-to-v3) | | [Interactive Platforms](#interactive-platforms) | | [Training Courses](#training-courses) | | [Books](#books) | | [GitHub Tutorial Repositories](#github-tutorial-repositories) | | [Blog Posts & Written Tutorials](#blog-posts--written-tutorials) | ## 互动平台 | 平台 | 描述 | 链接 | |------|------|------| | [Volatility 官方论坛](#interactive-platforms) | 讨论与问答 | | [Volatility Discord](#interactive-platforms) | 实时交流 | | [Volatility Subreddit](#interactive-platforms) | 社区分享 | ## 培训课程 | 课程 | 提供方 | 链接 | |------|--------|------| | [SANS FOR508](https://www.sans.org/cyber-security-courses/endpoint-forensics/) | SANS | [Link](https://www.sans.org/cyber-security-courses/endpoint-跨平台取证/) | | [Volatility Training](https://www.volatilesystems.com/training) | Volatile Systems | [Link](https://www.volatilesystems.com/training) | | [DFIR Training](https://www.dfir.science) | DFIR.Science | [Link](https://www.dfir.science) | ## 书籍 | 书名 | 作者 | 简介 | 链接 | |------|------|------|------| | 《The Art of Memory Forensics》 | Michael Hale Ligh, Andrew Case, Jamie Levy, AAron Walters | 内存取证经典著作 | [Link](#books) | | 《Practical Memory Forensics》 | Michael Hale Ligh, Kristinn Gudjonsson | 实战内存取证 | [Link](#books) | ## GitHub 教程仓库 | 仓库 | 描述 | 链接 | |------|------|------| | [volatility-tutorials](#github-tutorial-repositories) | 入门与进阶教程 | [Link](#github-tutorial-repositories) | ## 插件开发指南 | 指南 | 链接 | |------|------| | [Volatility 3 Plugin Development](#plugin-development-guide) | 官方开发指南 | | [Volatility 2 Plugin Development](#volatility-2-plugin-architecture) | 官方开发指南 | ## 从 V2 移植到 V3 | 指南 | 链接 | |------|------| | [Porting from V2 to V3](#porting-from-v2-to-v3) | 迁移指南 | ## 更多资源 | 资源 | 链接 | |------|------| | [Conference Talks & Presentations](#conference-talks--presentations) | 会议演讲与演示 | | [Curated Lists & Blogs](#curated-lists--blogs) | 精选列表与博客 | | [Related Tools](#related-tools) | 相关工具 | | [Contributing](#contributing) | 贡献指南 | | [License](#license) | 许可证 | ## 致谢 感谢所有贡献者、分享者以及社区成员对本项目的支持! | Windows 内存中自动启动扩展点的特征与可检测性 | 各种 | 2019 | DFRWS EU 2019 | Windows ASEP 分析用“Winesap”插件 | [论文](https://dfrws.org/wp-content/uploads/2019/06/2019_EU_paper-characteristics_and_detectability_of_windows_auto-start_extensibility_points_in_memory_forensics.pdf) | |---|---|---|---|---|---| | 内存加密货币钱包的数字取证(FORESHADOW) | 各种 | 2020 | DFRWS USA 2020 | 用于硬件加密货币钱包数据提取的自定义插件 | [论文](https://dfrws.org/wp-content/uploads/2020/10/2020_USA_paper-memory_foreshadow_memory_forensics_of_hardware_cryptocurrency_wallets_a_tool_and_visualization.pdf) | | 用压缩的 RAM 替代交换空间:分析 Mac OS X 与 Linux 中的压缩 RAM | Andrew Case, Golden G. Richard III | 2014 | DFRWS 2014 | 最佳论文奖。适用于压缩 RAM 解压缩的 Volatility 插件 | [DFRWS](https://dfrws.org/) | | 击败设备监控恶意软件的新内存取证技术 | Case, Moreira, Sellers, Richard III | 2022 | Black Hat USA 2022 | 用于检测键盘记录器、剪贴板监视器、麦克风/摄像头记录器的插件 | [论文](https://i.blackhat.com/USA-22/Wednesday/US-22-Case-New-Memory-Forensics-Techniques-to-Defeat-Device-Monitoring-Malware-wp.pdf) | | VolMemDroid | 各种 | 2024 | Expert Systems with Applications | 首个基于 Volatility 的 Android 恶意软件行为分析框架 | [ScienceDirect](https://www.sciencedirect.com/science/article/abs/pii/S0957417424012132) | | 利用大语言模型进行内存取证 | 各种 | 2025 | ACM Digital Threats | 结合 GPT-3.5 与 Volatility 进行勒索软件分类 | [ACM](https://dl.acm.org/doi/full/10.1145/3748263) | | 模块提取与 DLL 劫持检测 | 各种 | 2023 | DFRWS EU 2023 | 通过单次或多次内存分析进行检测 | [论文](https://dfrws.org/wp-content/uploads/2023/03/Module_extraction_and_DLL_hijacking_detection_via_single_or_multiple.pdf) | | 利用内存取证调查非法 3D 打印 | 各种 | 2025 | DFRWS 2025 | 用于检测非法 3D 打印活动的内存取证 | [论文](https://dfrws.org/wp-content/uploads/2025/05/Leveraging-memory-forensics-to-investigate-and-detect-illegal-3D-printing-activities.pdf) | ## 教程与学习资源 ### 官方文档 | 资源 | 难度 | 描述 | 链接 | |---|---|---|---| | 编写一个简单的插件(Vol3) | 初级 | 创建第一个 Volatility 3 插件的官方指南 | [文档](https://volatility3.readthedocs.io/en/latest/simple-plugin.html) | | 编写更高级的插件(Vol3) | 高级 | 带有多种要求的复杂插件开发 | [文档](https://volatility3.readthedocs.io/en/latest/complex-plugin.html) | | Vol3 通用插件开发指南 | 中级 | 全面的开发文档 | [文档](https://volatility3.readthedocs.io/en/latest/development.html) | | Vol2 与 Vol3 之间的变更 | 中级 | 迁移指南与架构差异 | [文档](https://volatility3.readthedocs.io/en/latest/vol2to3.html) | | Volatility 2 命令参考 | 参考 | 完整的 Vol2 命令列表及用法 | [Wiki](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference) | ### 博客文章与书面教程 | 标题 | 作者 | 年份 | 专注领域 | 描述 | 链接 | |---|---|---|---|---|---| | 编写一个 Volatility 3 插件 | RME-DisCo Research Group | — | Vol3 | Vol3 插件开发的详细逐步教程 | [博客](https://reversea.me/index.php/writing-a-volatility-3-plugin/) | | 使用 Volatility 3 进行 BPF 内存取证 | Valentin Obst (lolcads) | 2023 | Vol3 / Linux | 获奖 eBPF 根kit 分析插件 | [博客](https://lolcads.github.io/posts/2023/12/bpf_memory_forensics_with_volatility3/) | | 在 Linux 内存取证中利用 BTF 信息 | Valentin Obst (lolcads) | 2024 | Vol3 / Linux | 使用 btf2json 进行高级配置生成 | [博客](https://lolcads.github.io/posts/2024/11/btf2json/) | | 开发一个 Volatility3 插件 | Spellbook of Signals | 2025 | Vol3 | 架构与模块化设计指南 | [博客](https://jakeperalta7.github.io/2025/11/02/developing-a-volatility3-plugin.html) | | Volatility 3 - 学习编写插件(第一部分) | ogmini | 2025 | Vol3 | Vol3 开发初学者的视角 | [博客](https://ogmini.github.io/2025/08/23/Volatility-3-Learning-to-Write-a-Plugin-Part-1.html) | | 为 Volatility 编写插件 | volatilevirus (Abhiram) | 2018 | Vol2 | Volatility 2 插件基础入门指南 | [博客](https://volatilevirus.home.blog/2018/09/06/writing-plugins-for-volatility/) | | 将 Volatility 插件从 2 迁移到 3 | JPCERT/CC | 2020 | Vol2→Vol3 | 使用 impfuzzy 插件的逐步迁移指南 | [博客](https://blogs.jpcert.or.jp/en/2020/07/how-to-convert-vol-plugin.html) | | 我的第一个 Volatility 插件 | bridgeythegeek | — | Vol2 | 适用于初学者的 Vol2 插件编写指南 | [Gist](https://gist.github.com/bridgeythegeek/2b41fbad6a2eb6aea4f9d4343f5cda82) | | 我的第一个 Volatility 插件(统一输出) | bridgeythegeek | — | Vol2 | 带有统一输出格式的更新版本 | [Gist](https://gist.github.com/bridgeythegeek/bf7284d4469b60b8b9b3c4bfd03d051e) | | Vol3 插件:kusertime、notepad、sticky、evtxlog | Rifqi Ardia Ramadhan | — | Vol3 | 多个实用插件实现 | [Medium](https://medium.com/@rifqiaramadhan/volatility-3-plugin-kusertime-notepad-sticky-evtxlog-f0e8739eee55) | | 使用 Volatility 进行基础内存取证 | cocomelonc | 2022 | 通用 | 进程注入示例与分析逐步教程 | [博客](https://cocomelonc.github.io/tutorial/2022/02/07/mem-forensics-1.html) | ### 交互式平台 | 平台 | 房间 / 挑战 | 难度 | 描述 | 链接 | |---|---|---|---|---| | TryHackMe | Volatility Essentials | 初级-中级 | 动手实践 Volatility 分析环境 | [THM](https://tryhackme.com/room/volatilityessentials) | | TryHackMe | 内存取证 | 初级 | 介绍使用 Volatility 的内存取证 | [THM](https://tryhackme.com/room/memoryforensics) | | HackTheBox | 内存取证挑战 | 中级 | CTF 风格的内存分析挑战 | [HTB](https://www.hackthebox.com/blog/memory-forensics-volatility-write-up) | ### 培训课程 | 课程 | 提供方 | 描述 | 链接 | |---|---|---|---| | 恶意软件与内存取证培训 | Volatility Foundation / memoryanalysis.net | 唯一官方课程。含视频模块与动手实验(Windows/Linux/macOS),由核心开发者授课(Case、Levy、Richard、Walters) | [课程](https://memoryanalysis.net/courses-malware-memory-forensics/) | | DFRWS EU 2025 工作坊 | Ricardo J. Rodriguez | 实战恶意软件分析与内存取证实验,含完整实验材料 | [资料](https://webdiis.unizar.es/~ricardo/dfrws-eu-25-workshop/) | | 使用 Volatility 3 进行现代内存取证 | DFRWS | 使用 Volatility 3 进行现代取证的实验工作坊 | [信息](https://dfrws.org/presentation/workshop-modern-memory-forensics-with-volatility-3/) | ### 书籍 | 标题 | 作者 | 年份 | 出版社 | 描述 | |---|---|---|---|---| | **内存取证的艺术** | Michael Hale Ligh, Andrew Case, Jamie Levy, AAron Walters | 2014 | Wiley | 内存取证领域的权威著作。第 3 章涵盖 Volatility 架构与插件开发,由核心 Volatility 开发者撰写。 | | **实用内存取证** | Svetlana Ostrovskaya, Oleg Skulkin | 2022 | Packt | 涵盖 Windows、Linux、macOS 的内存取证,重点关注威胁检测与用户活动分析。 | ### GitHub 教程仓库 | 仓库 | 作者 | 描述 | 链接 | |---|---|---|---| | Volatility-Plugin-Tutorial | iAbadia | 编写 Volatility 插件的逐步教程 | [GitHub](https://github.com/iAbadia/Volatility-Plugin-Tutorial) | | volatility-plugins (learning) | TazWake | 入门友好示例与学习资料 | [GitHub](https://github.com/TazWake/volatility-plugins) | ## 插件开发指南 ### Volatility 3 插件架构 Volatility 3 是针对 Python 3.8+ 的完全重写,采用了根本不同的架构: - **基类**:所有插件继承自 `interfaces.pluginsInterface` - **依赖声明**:插件通过 `get_requirements()` 类方法声明依赖(翻译层、符号表、PID 过滤器等) - **自动化**:框架自动堆叠翻译层并检测操作系统 —— 无需手动指定 `--profile` - **输出**:插件通过单个 `run()` 方法返回 `renderers.TreeGrid` - **符号表**:ISF(中间符号格式)JSON 文件替代 Python vtypes/profiles - **对象**:继承自原生 Python 类型 —— 不再需要 `.v()` 调用 ### Volatility 3 最简插件示例 ``` # myprocesslist.py - Volatility 3 Plugin Example from volatility3.framework import interfaces, renderers from volatility3.framework.configuration import requirements from volatility3.plugins.windows import pslist class MyProcessList(interfaces.plugins.PluginInterface): """Lists running processes (example plugin)""" _required_framework_version = (2, 0, 0) @classmethod def get_requirements(cls): return [ requirements.ModuleRequirement( name="kernel", description="Windows kernel", architectures=["Intel32", "Intel64"], ), requirements.PluginRequirement( name="pslist", plugin=pslist.PsList, version=(2, 0, 0), ), ] def run(self): return renderers.TreeGrid( [ ("PID", int), ("Name", str), ("PPID", int), ], self._generator(), ) def _generator(self): kernel = self.context.modules[self.config["kernel"]] for proc in pslist.PsList.list_processes( context=self.context, layer_name=kernel.layer_name, symbol_table=kernel.symbol_table_name, ): pid = proc.UniqueProcessId name = proc.ImageFileName.cast( "string", max_length=proc.ImageFileName.vol.count, errors="replace" ) ppid = proc.InheritedFromUniqueProcessId yield (0, (pid, name, ppid)) ``` **用法**:将插件放置于 `volatility3/plugins/` 或自定义路径,并通过 `vol -f memory.dmp myprocesslist` 运行 ### Volatility 2 插件架构 Volatility 2 插件采用基于 Python 2.6/2.7 的类架构: - **基类**:继承自 `commands.Command`(通用)或平台特定子类(如 `common.AbstractWindowsCommand`、`linux_common.AbstractLinuxCommand` 或 `mac.AbstractMacCommand`) - **自动发现**:插件通过 `volatility/plugins/` 或 `--plugins=` 指定的外部目录中的注册元类自动发现 - **生命周期**: 1. `calculate()` —— 执行分析,通常作为生成器产生结果 2. `render_text(outfd, data)` —— 格式化文本输出 3. `unified_output(data)` ——(可选)提供与格式无关的 TreeGrid 渲染 ### Volatility 2 最简插件示例 ``` # myprocesslist.py - Volatility 2 Plugin Example import volatility.commands as commands import volatility.utils as utils import volatility.win32.tasks as tasks class MyProcessList(commands.Command): """Lists running processes (example plugin)""" def calculate(self): addr_space = utils.load_as(self._config) for task in tasks.pslist(addr_space): yield task def render_text(self, outfd, data): self.table_header(outfd, [ ("PID", "8"), ("Name", "20"), ("PPID", "8"), ]) for task in data: self.table_row(outfd, task.UniqueProcessId, task.ImageFileName, task.InheritedFromUniqueProcessId, ) ``` **用法**:保存文件并使用 `vol.py --plugins=/path/to/dir -f memory.dmp myprocesslist` 运行 ### 从 V2 迁移到 V3 关键迁移步骤(参见[官方迁移指南](https://volatility3.readthedocs.io/en/latest/vol2to3.html)与[JPCERT/CC 博客](https://blogs.jpcert.or.jp/en/2020/07/how-to-convert-vol-plugin.html)): 1. **替换继承**:`commands.Command` → `interfaces.plugins.PluginInterface` 2. **替换 `calculate()` + `render_text()`** → 单个 `run()` 方法返回 `TreeGrid` 3. **替换地址空间** → 通过 `ModuleRequirement` 使用翻译层 4. **替换配置文件** → ISF 符号表(自动检测) 5. **替换 `.v()` 调用** → 对象为原生 Python 类型,直接访问 6. **移除 `--profile`** → 框架自动处理操作系统检测 7. **声明依赖** → 显式定义 `get_requirements()` 类方法 8. **文件输出** → 使用 `self.open()` 上下文管理器(统一转储 API) ## 额外资源 ### 会议演讲与演示 | 演讲 | 演讲者 | 会议 | 年份 | 链接 | |---|---|---|---|---| | 新内存取证技术:击败设备监控恶意软件 | Case, Moreira, Sellers, Richard III | Black Hat USA | 2022 | [论文](https://i.blackhat.com/USA-22/Wednesday/US-22-Case-New-Memory-Forensics-Techniques-to-Defeat-Device-Monitoring-Malware-wp.pdf) | | BPF/eBPF 内存取证 | Case, Richard III | Black Hat USA | 2021 | [论文](https://i.blackhat.com/USA21/Wednesday-Handouts/us-21-Fixing-A-Memory-Forensics-Blind-Spot-Linux-Kernel-Tracing-wp.pdf) | | 通过物理内存分析解除 Live CD 匿名 | Andrew Case | Black Hat DC | 2011 | [论文](https://media.blackhat.com/bh-dc-11/Case/BlackHat_DC_2011_Case_De-Anonymizing_Live_CDs-wp.pdf) | | 下一代内存取证(首个 Vol3 测试版) | Volatility Team | OSDFCon | 2014 | [幻灯片](https://www.osdfcon.org/presentations/2014/Volatility-OSDFC2014.pdf) | | 主动威胁狩猎:内存取证 | Volatility Team | OSDFCon | 2015 | [信息](https://www.autopsy.com/the-volatility-team-talks-proactive-threat-hunting-with-memory-forensics-an-osdfcon-presentation/) | | 从内存重建 MBR 与 MFT | — | OMFW | 2012 | [信息](https://volatilityfoundation.org/omfw-2012-reconstructing-the-mbr-and-mft-from-memory/) | | 使用 Volatility 分析 Linux 内核根kit | Andrew Case | OMFW | 2012 | [幻灯片](https://downloads.volatilityfoundation.org/omfw/2012/OMFW2012_Case.pdf) | | 使用 Volatility 进行 Linux 内存分析 | Andrew Case | Black Hat Workshop | 2011 | [幻灯片](https://www.slideshare.net/slideshow/blackhat-workshopfullpresentation/10718297) | ### 精选列表与博客 | 资源 | 描述 | 链接 | |---|---|---| | awesome-volatility | 适用于 v2 与 v3 的 Volatility 资源精选列表 | [GitHub](https://github.com/ZarKyo/awesome-volatility) | | Volatility Labs Blog | 官方博客,包含分析技术与插件发布 | [博客](https://volatility-labs.blogspot.com/) | | Volatility Foundation | 官方组织网站、新闻与竞赛信息 | [网站](https://volatilityfoundation.org/) | | Andrew Case (Google Scholar) | 核心 Volatility 开发者的学术出版物 | [学者](https://scholar.google.com/citations?user=WrFc7uAAAAAJ&hl=en) | | DFRWS Proceedings | 数字取证研究会议(包含大量 Volatility 论文) | [网站](https://dfrws.org/) | ### 关联工具 | 工具 | 描述 | 链接 | |---|---|---| | MemProcFS | 内存进程文件系统 —— 将内存作为文件系统挂载 | [GitHub](https://github.com/ufrisk/MemProcFS) | | Rekall | 内存取证框架(Google 维护,现已归档) | [GitHub](https://github.com/google/rekall) | | AVML | Windows 物理内存获取工具(Microsoft) | [GitHub](https://github.com/microsoft/avml) | | LiME | Linux 内存提取器 —— 内核模块用于内存获取 | [GitHub](https://github.com/504ensicsLabs/LiME) | | WinPmem | Windows 物理内存获取工具 | [GitHub](https://github.com/Velocidex/WinPmem) | | dwarf2json | 将 DWARF 调试信息转换为 Volatility 3 ISF JSON 符号 | [GitHub](https://github.com/volatilityfoundation/dwarf2json) | | VolWeb | Volatility 3 的 Web 界面 | [GitHub](https://github.com/k1nd0ne/VolWeb) | ## 贡献 欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。 ## 许可证 [![CC0](https://licensebuttons.net/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) 在法律允许范围内,作者已放弃所有版权及相关邻接权。 **免责声明**:本仓库是面向教育与防御性安全用途的精选参考资源。在对任何系统执行内存取证前,请确保已获得适当授权。
标签:DAST, JARM, Linux内存取证, macOS内存取证, SecList, Volatility 2, Volatility 3, Windows内存取证, 书籍, 二进制发布, 云资产清单, 内存分析, 内存取证, 内存取证工具, 内存镜像分析, 内核分析, 博客, 取证工具, 培训课程, 学习资源, 开源工具, 恶意软件分析, 插件, 教程, 数字取证, 数据展示, 注册表分析, 研究论文, 红队, 自动化脚本, 跨平台内存取证, 进程分析, 逆向工具, 逆向工程