3

null バイトではなく、メッセージで上書きしたいハード ドライブがあります。

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

最初の数バイトが上書きされているのがわかりますが、残りは変更されていません。ドライブに「非表示」を再帰的に書き込みたいです。

4

3 に答える 3

13

これを試すための予備のディスクはありませんが、yesコマンドを使用して、文字列をパイプに継続的にプッシュできます

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

dd がディスク全体を書き込むと、パイプが閉じられ、このコマンドが終了すると思います。

上記は、「隠し」文字列を改行で区切ります。質問のようにスペースで区切られたい場合は、次のことができます。

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

または、ヌル区切りが必要な場合:

yes "Hidden" | tr '\n' '\0' | dd of=/dev/sdb
于 2013-12-21T01:30:08.777 に答える
2

パラメータを指定しない場合if、入力は stdin から読み取られます。これにより、次のようなことができます。

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

の値は100000明らかに少なくとも である必要がありますdiskSizeInBytes / strlen('Hidden ')

結果を考えると、私はあなたのためにこれをテストしませんでしたが、うまくいくはずです;)

于 2013-12-21T01:10:30.193 に答える