Nie przeprowadziłem też wielu testów fuzz , ale oto dwa pomysły:
Wpisz kilka zer na środku pliku. Użyj dd
z conv=notrunc
. Spowoduje to zapisanie jednego bajtu (wielkość bloku = 1 liczba = 1):
dd if=/dev/zero of=file_to_fuzz.zip bs=1 count=1 seek=N conv=notrunc
Użycie /dev/urandom
jako źródła jest również opcją.
Alternatywnie, wybij wiele otworów o wielkości 4k za pomocą fallocate --punch-hole
. Możesz nawet fallocate --collapse-range
wyciąć stronę bez pozostawiania dziury wypełnionej zerą. (Spowoduje to zmianę rozmiaru pliku).
Pobieranie wznowione w niewłaściwym miejscu byłoby zgodne ze --collapse-range
scenariuszem. Niekompletny torrent pasuje do punch-hole
scenariusza. (Rzadki plik lub wstępnie przydzielone zakresy, odczytywane jako zero w dowolnym miejscu, które nie zostało jeszcze zapisane).
Zła pamięć RAM (w systemie, z którego pobrałeś plik) może powodować uszkodzenie, a dyski optyczne również mogą uszkadzać pliki (ich ECC nie zawsze jest wystarczająco mocne, aby idealnie odtworzyć się po zadrapaniach lub blaknięciu barwnika).
Sektory DVD (bloki ECC) to 2048B , ale mogą wystąpić błędy jednobajtowe lub nawet bitowe. Niektóre dyski prawdopodobnie zapewnią złe dane, których nie da się naprawić, zamiast błędu odczytu dla sektora, szczególnie jeśli czytasz w trybie surowym lub w / e to się nazywa.