Ich habe auch nicht viel Fuzz-Tests gemacht , aber hier sind zwei Ideen:
Schreiben Sie einige Nullen in die Mitte der Datei. Verwenden Sie dd
mit conv=notrunc
. Dies schreibt ein einzelnes Byte (Blockgröße = 1 Anzahl = 1):
dd if=/dev/zero of=file_to_fuzz.zip bs=1 count=1 seek=N conv=notrunc
Die Verwendung /dev/urandom
als Quelle ist ebenfalls eine Option.
Alternativ können Sie auch mehrere 4k-Löcher mit stanzen fallocate --punch-hole
. Sie können sogar fallocate --collapse-range
eine Seite ausschneiden, ohne ein mit Nullen gefülltes Loch zu hinterlassen. (Dies ändert die Dateigröße).
Ein Download, der an der falschen Stelle fortgesetzt wird, entspricht dem --collapse-range
Szenario. Ein unvollständiger Torrent entspricht dem punch-hole
Szenario. (Sparse-Datei oder vorab zugewiesene Speicherbereiche, die entweder an einer noch nicht geschriebenen Stelle als Null gelesen werden.)
Ein fehlerhafter Arbeitsspeicher (auf dem System, von dem Sie die Datei heruntergeladen haben) kann zu Beschädigungen führen, und optische Laufwerke können auch Dateien beschädigen (deren ECC ist nicht immer stark genug, um perfekt von Kratzern oder Verblassen des Farbstoffs wiederherzustellen).
DVD-Sektoren (ECC-Blöcke) sind 2048B groß , es können jedoch Einzelbyte- oder sogar Einzelbitfehler auftreten. Einige Laufwerke geben Ihnen wahrscheinlich die fehlerhaften, nicht korrigierbaren Daten anstelle eines Lesefehlers für den Sektor, insbesondere wenn Sie im unformatierten Modus lesen oder wenn er aufgerufen wird.