【发布时间】:2021-02-27 12:47:05
【问题描述】:
如何用零覆盖所有可用磁盘空间,如 Windows 中的 cipher 命令;例如:
cipher /wc:\
这将在三遍中覆盖可用磁盘空间。如何在 C 或 C++ 中执行此操作? (我希望尽快完成。)
【问题讨论】:
-
只需创建一个文件并将
0写入其中直到它失败 -
@AlanBirtles:这不适用于优化动态压缩文件内容的文件系统。
如何用零覆盖所有可用磁盘空间,如 Windows 中的 cipher 命令;例如:
cipher /wc:\
这将在三遍中覆盖可用磁盘空间。如何在 C 或 C++ 中执行此操作? (我希望尽快完成。)
【问题讨论】:
0写入其中直到它失败
您可以创建一组文件并向它们写入随机字节,直到可用磁盘空间被填满。退出程序前应删除这些文件。
文件必须在您要清理的设备上创建。
由于文件大小限制,某些文件系统可能需要多个文件。
在这些文件中使用不同的非重复随机序列非常重要,以避免文件系统压缩和重复数据删除策略可能会减少实际写入的磁盘空间量。
另请注意,操作系统可能具有配额系统,这会阻止您填充可用磁盘空间,并且当其他进程的磁盘空间用完时,还可能显示不稳定的行为。
删除文件可能会导致操作系统跳过缓存刷新机制,导致某些块无法写入磁盘。可能需要sync() 系统调用或等效项。硬件级别的进一步同步可能会延迟,因此可能需要等待一段时间才能删除文件。
使用不同的随机种子重复此过程,可通过使用高级取证工具进行表面分析来提高硬件恢复的几率。这些工具并不完美,尤其是当恢复对于丢失的比特币钱包所有者来说可以挽救生命时,但在其他更成问题的情况下可能会有效。
使用随机字节有双重目的:
【讨论】: