这个问题过去已经被提出过,并取得了不同程度的成功......
是否有工具或 C/C++ unix 函数可供调用,使我能够检索文件在磁盘上的位置?不是文件的某个虚拟地址,而是文件所在的磁盘/扇区/块?
这里的目标是能够覆盖磁盘上存在的实际位。我可能需要一种方法来绕过内核的地址叠加。我愿意考虑基于 x86 asm 的解决方案......
然而,我觉得已经有一些工具可以很好地做到这一点。
感谢您对此的任何意见。
只有在非常特殊的情况下才能安全地删除文件:
-
操作系统和实际存储介质之间不存在不受控制的间接层。
在不能再假设的现代系统上。具有固件磨损均衡代码的 SSD 驱动器不会这样工作;他们可以随意移动或复制数据,没有记录或不受外部控制的可能性。即使是磁盘驱动器通常也会将现有数据保留在发生故障后重新映射的扇区中。混合动力驱动器既可以...
ATA 规范确实支持安全擦除 https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase命令擦除整个驱动器,但我不知道现有的实现有多彻底。
-
文件系统驱动程序始终具有稳定且唯一的文件到物理块的映射。
我相信ext2fs
确实有这个功能。我也认为ext3fs
and ext4fs
在默认日志模式下也可以这样工作,但在使用data=journal
选项允许将文件数据存储在日志中,而不仅仅是元数据。
另一方面reiserfs
肯定会以不同的方式工作,因为它存储少量数据以及元数据,除非安装了notail
option.
如果满足这两个条件,那么诸如shred http://linux.die.net/man/1/shred may能够通过多次覆盖文件内容来安全地删除文件内容。
该方法仍然没有考虑到:
Backups
虚拟化存储
交换空间中剩余的数据
...
底线:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)