答案 0 :(得分:1)
它可能用于基于FAT的系统,其中删除文件等于将文件标记为在表中删除。清除该标记会取消删除该文件(当然,内容可能已被同时覆盖)。
同样的原则仍适用于NTFS,但我不知道是否可以这样改变NTFS结构而不会遇到麻烦。
答案 1 :(得分:1)
通过调试,您可以直接从硬盘读取和写入。这是一个非常复杂和危险的程序。
基本上,您需要做的是找到引导记录以找到恢复文件所需的文件分配表(FAT)。然后,您将在驱动器上找到文件的第一个集群以及文件条目中文件的大小。一旦你知道了第一个块和大小,你就会希望文件没有碎片或被覆盖,并且可以简单地在那里提取信息。
还有一个取消删除的应用程序可以自动为您执行此操作。
今天,所有这一切都可以在卷路径\\.\C:
上使用:: CreateFile()并直接从卷使用:: ReadFile()句柄来完成。如果您确切地知道文件头是什么样的,那么成功率尤其高,那么您可以非常轻松地逐个扇区地搜索该特定标头,并希望该文件不会被分段或覆盖。然后,您可以直接从驱动器中读取信息并将其转储到新文件中。没有必要摆弄文件系统。
如果文件在删除之前被分段,那么它可能会消失,因为你不再拥有找到所有文件部分的信息,除了第一个集群。