Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Process-Dump — 用于将恶意软件PE文件从内存转储到磁盘进行分析的Windows工具。 | Kitploit
工具/GitHubGitHub/glmcdona/process-dump
内存取证逆向工程取证分析恶意软件分析二进制分析
GitHubglmcdona/process-dump

Process-Dump

用于将恶意软件PE文件从内存转储到磁盘进行分析的Windows工具。

查看仓库
1.9k2833年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Process Dump

Process Dump 是一款 Windows 逆向工程命令行工具,用于将恶意软件内存组件转储回磁盘以便分析。恶意软件文件在执行前通常会被打包和混淆以逃避反病毒扫描器的检测,然而当这些文件执行时,它们通常会解包或注入一个干净的恶意软件代码版本到内存中。恶意软件分析师分析恶意软件时的常见任务就是将这段解包后的代码从内存中转储回磁盘,以便使用反病毒产品进行扫描,或使用静态分析工具(如 IDA)进行分析。

Process Dump 适用于 Windows 32 位和 64 位操作系统,可以转储特定进程或当前所有运行进程中的内存组件。Process Dump 支持创建和使用干净哈希数据库,从而可以跳过转储所有干净文件(如 kernel32.dll)。其主要功能包括:

  • 转储特定进程或所有进程中的代码。
  • 查找并转储未正确加载到进程中的隐藏模块。
  • 查找并转储松散的代码块,即使它们不与 PE 文件关联。它会为这些块构建 PE 头和导入表。
  • 使用激进的方法重建导入。
  • 支持关闭转储监控模式('-closemon'),在此模式下进程将在终止前被暂停并转储。
  • 多线程支持,因此在转储所有运行进程时速度较快。
  • 可以生成干净哈希数据库。在机器感染恶意软件之前生成此数据库,这样 Process Dump 将只转储新的恶意代码组件。

我在我的网站上维护着官方编译版本: https://split-code.com/processdump.html

安装

您可以从以下地址下载 Process Dump 的最新编译版本:

  • https://github.com/glmcdona/Process-Dump/releases

编译源代码

本工具面向 Visual Studio 2019 设计,并兼容免费的 Community 版本。只需使用 VS2019 打开项目文件并编译即可,应该非常简单!

命令行参数

Process dump 可用于转储内存中所有未知代码('-system' 标志)、转储特定进程,或运行监控模式,在进程终止前转储所有进程。

在首次使用此工具之前,请在干净的工作站上通过以下方式之一生成干净排除哈希数据库:

  • pd -db genquick
  • pd -db gen

使用示例:

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

命令行参数可分组如下:

常规转储选项

干净哈希数据库选项

输出选项

选项描述
-v详细模式,输出更多调试信息。
-nh输出中不打印头部信息。

高级选项

使用示例

沙箱使用

在自动化沙箱或进行手动反恶意软件研究时使用 Process Dump,以下步骤可能有用。请确保在干净环境中以管理员身份运行所有命令。

  • 构建干净哈希数据库: 运行 pd64.exe -db gen 或使用更快速但不那么完整的过程 pd64.exe -db genquick。根据情况,您可能希望在创建干净哈希数据库后对虚拟机进行快照,这样每次使用时无需重复该步骤。

  • 启动 Process Dump 终止监控: 让 pd64.exe -closemon 在后台保持运行。它将转储恶意软件使用的所有中间进程。

  • 执行恶意软件文件: 监控恶意软件的安装。pd64.exe 将自动转储任何尝试关闭的进程。

  • 从内存中转储运行中的恶意软件: 准备就绪时,使用 pd64.exe -system 转储所有进程。

转储的组件将位于 pd64.exe 的工作目录中。要更改输出路径,请使用 -o 标志。

关于转储模块命名约定的说明:

  • 文件名中的 'hiddemodule' 而非模块名称,表示该模块未在进程中正确注册。
  • 文件名中的 'codechunk' 表示这是从松散可执行区域重建的转储内容。这可以是例如没有 PE 头的注入代码。代码块将被转储两次,一次使用重建的 x86 头,一次使用重建的 x64 头。

转储文件的示例文件名:

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

版本历史

版本 2.1(2017 年 2 月 12 日)

  • 修复了某些情况下最后一个区块被零填充的错误。感谢 megastupidmonkey 报告此问题。
  • 修复了 64 位基地址被截断为 32 位地址的错误。现在正确保留完整的 64 位模块基地址。感谢 megastupidmonkey 报告此问题。
  • 解决了进程转储关闭监控导致 csrss.exe 崩溃的问题。
  • 停止了 Process Dump 在关闭监控模式下钩子自身进程的行为。

版本 2.0(2016 年 9 月 18 日)

  • 新增 '-closemon' 标志,使 Process Dump 以监控模式运行。它会在进程关闭时暂停并转储该进程。此功能旨在与恶意软件分析沙箱配合使用,确保在恶意进程关闭前从内存中转储恶意软件。
  • 将 Process Dump 升级为多线程。转储或获取多个进程哈希的命令将每个操作运行单独线程。默认线程数为 16,显著加快了普通 Process Dump 转储处理速度。
  • 升级了 Process Dump 以转储内存中未附着的代码块。这些代码块被识别为内存中未附加到模块且没有 PE 头的可执行区域。它还要求代码块引用至少 2 个导入才被视为有效,以减少噪声。转储时会重新创建 PE 头以及导入表。代码块完全受干净哈希数据库支持。
  • 新增标志以控制干净哈希数据库的文件路径以及转储文件的输出文件夹。
  • 修复了从用户路径生成干净哈希数据库时导致崩溃的问题。
  • 修复了 '-g' 标志强制生成 PE 头的问题。之前即使设置此标志,系统转储(-system)在转储进程时会忽略它。
  • 各种性能改进。
  • 将项目升级到 VS2015。

版本 1.5(2015 年 11 月 21 日)

  • 修复了非常大的内存区域导致 Process Dump 挂起的错误。
  • 修复了某些高地址模块在 64 位 Windows 下无法找到的错误。
  • 现在在详细模式下输出更多调试信息。

版本 1.4(2015 年 4 月 18 日)

  • 新增激进的导入重建方法。现在将模块中的所有 DWORD 和 QWORD 修补为对应的导出匹配项。
  • 新增 '-a (要转储的地址)' 标志,用于转储特定地址。它将为该地址生成 PE 头并构建导入表。
  • 新增 '-ni' 标志,用于跳过新的导入重建算法。
  • 新增 '-g' 标志,用于在转储模块时即使已存在 PE 头也强制生成新的 PE 头。例如当 PE 头格式错误时很有用。
  • 各种错误修复。

版本 1.3(2013 年 10 月 10 日)

  • 改进了对具有指定无效虚拟大小和地址的节区的 PE 头的处理。
  • 改进了模块转储方法,用于将虚拟节区转储到磁盘节区。

版本 1.1(2013 年 4 月 8 日)

  • 修复了与 Windows XP 的兼容性问题。
  • 纠正了进程转储显示正在转储模块但实际上并未转储的错误。
  • 实现了 '-pid ' 转储标志。

版本 1.0(2013 年 4 月 2 日)

  • 初始发布。
下载工具
选项描述
-system从所有可访问进程中转储所有不匹配干净哈希数据库的模块到工作目录。
-pid <pid>从指定 PID 中转储所有不匹配干净哈希数据库的模块到当前工作目录。使用 '0x' 前缀可指定十六进制 PID。
-closemon以监控模式运行。当任何进程终止时,Process dump 会先转储该进程。
-p <正则表达式进程名>从符合过滤器条件的进程名称中,转储所有不匹配干净哈希数据库的模块到指定 PID 的当前工作目录。
-a <模块基址>从进程中转储指定基址处的模块。
-o <路径>设置转储组件的默认输出根文件夹。
选项描述
-db gen自动处理几个常见文件夹以及当前运行的所有进程,并将找到的模块哈希添加到干净哈希数据库。它将以递归方式添加以下目录中的所有文件:%WINDIR%、%HOMEPATH%、C:\Program Files\、C:\Program Files (x86)\,以及所有运行进程中的所有模块。这些干净哈希将添加到应用程序目录下的 clean.hashes 文件中。在未来的进程转储命令中,这些已知模块将不会被转储。建议在干净系统上使用工具前先运行此命令一次,以避免转储过多模块。
-db genquick与上面相同,但仅将所有进程中的所有模块的哈希添加到干净哈希数据库。这是构建干净哈希数据库的更快方式,但完整性较差。
-db add <目录>将指定目录中的所有文件递归添加到干净哈希数据库。
-db rem <目录>将指定目录中的所有文件递归从干净哈希数据库中移除。
-nr禁用哈希数据库目录添加或移除命令的递归操作。
-db clean清空干净哈希数据库。
-db ignore本次转储进程时忽略干净哈希数据库。即使找到匹配项,也会转储所有模块。
-cdb <文件路径>指定本次运行使用的干净哈希数据库的完整文件路径,以覆盖默认的 clean.hashes。
-edb <文件路径>指定本次运行使用的入口点哈希数据库的完整文件路径。
-esdb <文件路径>指定本次运行使用的入口点短哈希数据库的完整文件路径。
选项描述
-g强制从头生成 PE 头,忽略现有头部。
-eprec强制重建入口点,即使看起来已存在有效的入口点。
-ni禁用导入重建。
-nc禁用转储松散代码区域。
-nt禁用多线程。
-nep禁用入口点哈希。
-t <线程数>设置使用的线程数(默认 16)。
命令描述
pd64.exe -db genquick基于当前运行进程快速构建干净模块数据库。后续任务中 Process Dump 将只转储未识别的模块。
pd64.exe -system转储所有进程中所有模块和隐藏块,同时忽略干净模块。
pd64.exe -closemon以终止监控模式运行。此模式将在所有进程尝试终止时转储它们。
pd64.exe -pid 0x18A从特定进程 ID 转储模块和隐藏块。
pd64.exe -p .\*chrome.\*按进程名称转储模块和隐藏块。
pd64.exe -db gen构建已知模块的干净哈希数据库。用于在后续任务中避免转储已知的正常模块。
pd64.exe -pid 0x1a3 -a 0xffb4000从 PID 中转储特定地址的代码。将生成两个用于分析的文件,分别具有重建的 32 位和 64 位 PE 头:notepad_exe_x64_hidden_FFB40000.exe 和 notepad_exe_x86_hidden_FFB40000.exe。