如何访问 Windows 搜索数据库以了解损坏硬盘上的文件?

Tri*_*ion 5 hard-drive file-search forensics windows-10

我有一台 Windows 10 电脑,其中一个硬盘完全损坏(因为 BIOS 无法识别,发出奇怪的噪音并且无法使用)。它不是系统盘,但主要包含私人数据。我不太记得光盘上有什么,这就是问题所在。为了评估损失(并评估硬盘上的进一步数据恢复程序是否值得付出代价),我想获得有关光盘上内容的所有可能线索(文件名,可能带有文件夹名称就足够了)。

我想也许 Windows 搜索及其所有文件索引可能包含一些有关光盘上存储的内容的信息,并且该信息(即使只是部分信息)可以以某种方式检索。

是否可以访问 Windows 搜索数据库并检索带有丢失驱动器路径的文件列表,如果可以,如何检索?

请注意,这个问题不是关于损坏硬盘的数据恢复,而是关于 Windows 保留硬盘驱动器上的文件(但目前不存在)的哪些信息。Windows 文件搜索索引似乎是存储此类信息的潜在位置。

Tri*_*ion 1

在DrMoishe Pippik的评论的帮助下,我成功访问了 Windows 搜索数据库。

搜索内容默认存储在

C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb

这是一个相当大的文件(在我的例子中为 1GB),通常无法复制到其他地方,因为它正在被 Windows 搜索使用。只需打开任务管理器,搜索“Microsoft Windows Search Indexer”并终止“Windows 搜索”进程即可。然后将 Windows.edb 文件复制到安全的地方。

有关搜索数据库的文件格式的信息例如在Howard Chivers的文档中,他使用wdsCarve软件,该软件似乎无法下载。还有这篇文章和Joachim Metz 的这篇文章。Joachim Metz 似乎也是Github 上libesedb的主要贡献者,但该库没有适用于 Windows 的二进制版本,并且被标记为实验性的。

简而言之,Windows 搜索数据库似乎基于可扩展存储引擎 (ESE) 数据库文件 (EDB) 格式,这是一种 Windows 专有的未记录文件格式,带有额外的混淆和压缩部分。

最后,我在 2018 年找到了Jeonghyeon Kim的一个名为WinSearchDBAnalyzer 的项目,其源代码(额外依赖Winforms)位于 Github 上。根据博客,它是免费的(可以使用),有适用于 Windows 的二进制文件可用,此外,通过 Microsoft 的 Visual Studio Community 版本,我可以轻松地自己构建该程序。

使用方法很简单,可以选择 Windows.edb 文件位置,然后检查一些标志以了解要搜索的内容。然后花了一段时间(约 5 分钟),然后在表中显示了大约 100k 条目。按文件位置排序很简单,并且会显示每个文件的元数据。

然而,回到我的初衷,丢失的硬盘驱动器上仍然存在于 Windows 搜索数据库中的文件数量少得令人失望。硬盘驱动器上的数十万个文件最多只能存储在该硬盘上。包含了1/10或更少(实际上是我还记得的东西),所以最终它的帮助比我想象的要小得多。尽管如此,它仍然是一种可行的方法,可以访问至少一些有关不存在且不再可访问的硬盘驱动器内容的元信息。