如何读取 Windows 休眠文件 (hiberfil.sys) 来提取数据?

如何读取 Windows 休眠文件 (hiberfil.sys) 来提取数据?

我需要通过解析来找出休眠文件中存储了哪些数据。但是,到目前为止,我只能通过在十六进制编辑器中打开它然后在其中搜索字符串来手动完成此操作。

我了解到SandMan 图书馆但没有任何资源。知道如何读取文件吗?或者是否有任何工具/库或其他方法可以做到这一点?

答案1

您可以Hiberfil.sysForensicWiki 页面

尽管解析文件格式所需的大多数数据结构都可以在 Microsoft Windows 调试符号中找到,但所使用的压缩 (Xpress) 却没有记录,直到 Matthieu Suiche 对其进行逆向工程。他与 Nicolas Ruff 一起创建了一个名为睡魔是唯一可以读写Windows休眠文件的开源工具。

Sandman 项目的 pdf 可以在这里找到这里

Sandman 项目的创建者还创建了一个工具来转储内存和Hiberfil.sys文件(并从 XPress 压缩格式中提取它)。MoonSols Windows 内存工具包

ForensicWiki 页面上的其他一些链接不再有效,但这是我找到的一个:(如果您想直接了解格式结构,可以使用此资源。对于标头,即文件的前 8192 个字节,您不需要解压缩它们)

休眠文件格式.pdf

最后一个 PDF 和最后一个链接ForensicWiki 页面上的信息应该会给你提供关于 结构的足够信息Hiberfil.sys

休眠文件由一个标准头(PO_MEMORY_IMAGE)、一组内核上下文和寄存器(如 CR3(_KPROCESSOR_STATE))以及几个压缩/编码的 Xpress 数据块数组(_IMAGE_XPRESS_HEADER 和 _PO_MEMORY_RANGE_ARRAY)组成。

标准标头位于文件的偏移量 0 处,如下所示。通常,Signature 成员必须是“hibr”或“wake”才被视为有效,但在极少数情况下,整个 PO_MEMORY_IMAGE 标头已被清零,这可以防止大多数工具分析休眠文件。在这些情况下,volatility 将使用强力算法来定位所需的数据。

这些文件中的参考资料也应该能为您提供大量其他可供探索的资源。

答案2

使用以下方法将 hiberfil.sys 文件转换为原始映像http://code.google.com/p/volatility/downloads/list。目前最新版本为 2.3.1。具体来说,您可以使用以下命令行首先创建原始映像:-f imagecopy -O hiberfil_sys.raw。这将为您创建一个原始映像,然后对其运行 volatility,这将帮助您提取信息,例如进程、连接、套接字和注册表配置单元(仅举几例)。插件的完整列表可以在此处找到: https://code.google.com/p/volatility/wiki/Plugins当然,mandiant redline 是另一个提供该功能的工具。希望这能有所帮助。

答案3

我强烈建议你看一下这个答案security.stackexchange.com。它展示了一种很好的方法,如何提取数据以及有关算法本身的信息。

我有突出显示重要的部分。

是的,它确实会将其以未加密的形式存储在磁盘上。它是 的一个隐藏文件 C:\hiberfil.sys,在启用休眠功能的任何系统上都会始终创建该文件。内容采用 Xpress 算法进行压缩,其文档可作为来自 Microsoft 的 Word 文档Matthieu Suiche 在 2008 年的 BlackHat 演讲中对此进行了全面的分析,您可以获取 PDF 版本还有一个工具叫MoonSols Windows 内存工具包它允许您转储文件的内容。不过,我不知道它是否允许您转换回来。您可能必须自己想办法完成。

一旦数据被取出,就可以提取或修改数据,包括指令。在缓解方面,最好的解决方案是使用 BitLocker 或 TrueCrypt 等全盘加密。

来源

相关内容