SDelete+SDelete Gui 下载及使用方法 - 彻底删除文件使其无法恢复
SDelete 全称Secure Delete,是微软 Sysinternals 提供的一款命令行工具,专门用于安全删除文件并擦除磁盘上的空闲空间。我们都知道,普通的文件删除操作并不会真正清除数据,而只是从文件系统中移除文件的索引,数据仍然存留在磁盘上,可能被恢复工具恢复。而 SDelete 通过安全擦除技术,彻底覆盖文件内容,确保数据无法被恢复。本文主要介绍其技术原理,并提供 SDelete 和 SDelete Gui 的下载,后者为前者的图形化工具。
SDelete 的工作原理
1. 安全删除文件
对于没有特殊属性的普通文件,SDelete 直接使用安全擦除模式覆盖文件内容,使其无法恢复。然而,Windows NT/2000 及更新版本的 NTFS 文件系统支持压缩文件、加密文件和稀疏文件,这类文件的存储方式较为复杂,直接覆盖文件内容可能无法真正清除数据。因此,SDelete 需要通过碎片整理(Defragmentation)API来获取这些文件在磁盘上的具体存储位置,并使用原始磁盘访问(Raw Disk Access)进行覆盖,确保数据被彻底清除。
2. 清理磁盘空闲空间
当用户删除文件后,虽然文件内容仍然存在于磁盘的空闲空间中,但文件系统(如 NTFS 或 FAT)不提供直接访问空闲空间的方法。因此,SDelete 采用了一种间接覆盖的方法来擦除空闲空间:
第一步:创建一个尽可能大的文件,以占满所有可用的磁盘空间。
第二步:使用非缓存文件 I/O写入该文件,避免影响 Windows 文件系统缓存。
第三步:如果仍有少量未分配的空间,SDelete 继续创建一个缓存文件来占用剩余空间。
第四步:对这些文件进行安全擦除,确保所有空闲空间都被安全覆盖。
3. 覆盖 MFT 记录(仅适用于 NTFS)
在 NTFS 文件系统中,文件信息存储在主文件表(MFT, Master File Table)中。即使文件被删除,其 MFT 记录仍可能保留部分文件元数据。为了防止数据恢复,SDelete 还会填充 MFT 的空闲空间,通过创建大量小文件来占据所有 MFT 记录,并安全擦除它们。
4. 覆盖文件名
删除文件后,其文件名仍可能残留在目录结构中。SDelete 通过重命名文件 26 次的方式覆盖原始文件名,每次替换文件名中的字符。例如,"foo.txt" 可能会被依次重命名为 "AAA.AAA"、"BBB.BBB" 等,以此方式擦除文件名信息,避免恢复工具获取原始文件名。
值得注意的是,SDelete 在清理磁盘空闲空间时,不会直接擦除删除文件的文件名,因为这需要修改目录结构,而目录的空闲空间无法被重新分配,因此无法进行安全覆盖。
SDelete 的使用方法
1. 安全删除文件或文件夹
sdelete -p 3 文件路径
-p 3 表示使用 3 次覆盖(默认是 1 次)。文件路径可以是单个文件或整个文件夹。
2. 擦除磁盘空闲空间
sdelete -z C:
-z 选项会填充整个磁盘的空闲空间,确保所有已删除文件的数据被彻底清除。
SDelete Gui 是什么?
说白了就是 SDelete 的图形版本。它会在 Windows 右键菜单中添加、配置和移除“安全删除”选项。使用“安全删除”功能可以安全且永久地删除所选的文件或文件夹。
使用非常简单!双击程序后会出现下面的界面,选择删除次数,然后点击 ENABLE 开启即可!\
但是特别注意的是:删除操作不会弹出确认对话框。一旦点击“安全删除”,所有选中的文件和文件夹将被删除,并且完全不可恢复!
该工具仅添加右键菜单选项,本身并不包含删除逻辑。它使用由 Mark Russinovich 编写的 Microsoft Sysinternals 工具 SDelete 来执行文件和文件夹的删除,采用符合美国国防部标准的算法进行安全删除。
为了正常运行,SDelete Gui 会从微软官方网站下载 SDelete。如果下载失败,它会检查您的 System32 或 SysWow64 文件夹中是否已存在 SDelete。如果无法下载 SDelete,且系统中未找到该文件,程序将显示错误消息,并无法正常运行。