假设我有某种形式的存储介质(HDD、SSD、USB 等等)。但我只有一个。
当存储设备上运行着任何擦除程序/代码时,这个唯一的存储设备是否可以在不使用任何其他形式的存储设备的情况下擦除(用二进制覆盖)自身?
我认为相当平庸的问题是运行擦除的程序在部分擦除自身之后无法继续运行。
我认为,如果在 RAM 中预装了擦除程序,那么就有可能实现,不是吗?
假设我有某种形式的存储介质(HDD、SSD、USB 等等)。但我只有一个。
当存储设备上运行着任何擦除程序/代码时,这个唯一的存储设备是否可以在不使用任何其他形式的存储设备的情况下擦除(用二进制覆盖)自身?
我认为相当平庸的问题是运行擦除的程序在部分擦除自身之后无法继续运行。
我认为,如果在 RAM 中预装了擦除程序,那么就有可能实现,不是吗?
是的,当然可以。程序加载到内存中 - 因此一旦它们进入内存,它们所在的磁盘就会被擦除,程序可以继续运行。你只需要确保程序足够小,可以完全加载到内存中。如果你保持程序很小,这不是一项艰巨的任务。
即使它更复杂,也没有什么可以阻止您设置 RAM 磁盘,然后将程序复制到 RAM 磁盘并运行它,并删除它所在的媒体。
根据操作系统的不同,您在退出时可能会遇到一些问题/错误,但擦除仍可能成功。
我使用 dd 在 Linux 系统上进行了一个快速实验,并执行以下操作:
这个输出很有趣,不像我预测的那样——原始文件是 68120 字节,当我尝试覆盖命令时,我收到错误“文本文件忙”,但 /tmp/dd 被截断并且有 0 字节。
然后我尝试了一个更复杂的技巧,它也奏效了,并证明它绝对可行- 创建一个回送文件挂载,将删除程序复制到其中,然后指示文件删除备份设备。这有效并且没有立即出错 - 我使用了以下命令:
有趣的是,命令退出时没有任何抱怨。当我执行 dd 时,我看到 /m2 仍然挂载 - 大概在内存中,因为 ls 也显示 dd。它甚至允许我在已擦除的文件系统上创建新文件...当我卸载临时文件系统并尝试重新挂载它时,我无法这样做,因为正如预期的那样,文件系统不再存在于磁盘上。
对这个问题的另一种看法——仍然是“是”——但只有在某些情况下,才会有另一种解释和答案——
如果您指的是擦除系统所在的磁盘,某些高端设备和驱动器具有“安全擦除”功能,可以触发该功能来擦除磁盘,而无需依赖软件覆盖每个扇区 - 在某些情况下,这可以在 BIOS 中触发,在其他情况下,可以通过调用固件子程序来触发。https: //www8.hp.com/h20195/v2/GetPDF.aspx/4AA7-2608ENW.pdf可能会有所帮助。https ://www.dell.com/support/kbdoc/en-us/000146892/dell-data-wipe和https://www.msi.com/faq/2659显示提供类似/等效功能的其他供应商。
但是,这个答案取决于硬件。使用加密驱动器并覆盖加密标头仍然有效。