使用DD递归写入特定文件

时间:2013-12-21 00:59:23

标签: linux drive hdd dd computer-forensics

我有一个我要覆盖的硬盘驱动器,不是使用空字节,而是使用消息。

48 69 64 64 65 6e 20 =“隐藏”

到目前为止,这是我的命令:

echo "Hidden " > /myfile
dd if=/myfile of=/dev/sdb bs=1M

注意:我还尝试了一些参数,例如count和conv无效

现在,这很好。我跑的时候:

dd if=/dev/sdb | hexdump -C | less

我可以看到写过的前几个字节,但其余的都没有改变。我想以递归的方式将“隐藏”写入驱动器。

3 个答案:

答案 0 :(得分:12)

我没有备用磁盘试试这个,但您可以使用yes command to continuously push your string into the pipe

yes "Hidden" | dd of=/dev/sdb

我假设一旦dd编写了整个磁盘,它就会关闭管道,这个命令就会完成。

以上将换行 - 分隔“隐藏”字符串。如果你想要它以空格分隔,就像你可以做的那样:

yes "Hidden" | paste -d' ' -s - | dd of=/dev/sdb

或者如果你想要它以null分隔:

yes "Hidden" | tr '\n' '\0' | dd of=/dev/sdb

答案 1 :(得分:2)

如果未指定if参数,则从stdin读取输入。这允许你做这样的事情:

dd of=/dev/sdb < for((i=0;i<100000;i++)); do echo 'Hidden '; done;

100000的值显然至少需要diskSizeInBytes / strlen('Hidden ')

考虑到后果,我没有为你测试这个,但它应该工作;)

答案 2 :(得分:2)

dcfldd,一个dd的分支,有一些你可能会觉得有用的附加功能。例如,您的问题将通过以下方式解决:

dcfldd textpattern="Hidden " of=/dev/sdb bs=1M