Você pode fazer algo muito mais simples com dd
:
dd if=/dev/zero \
of="$your_target_file" \
bs=1 \
seek="$((start_offset))" \
count="$((num_zeros))" \
conv=notrunc
Com $start_offset
sendo o início do intervalo de bytes a zero (baseado em zero, como para apagar do n th byte, use n-1) e $num_zeros
o comprimento desse intervalo. O $((...))
cuidará da conversão de hexadecimal em decimal.
(Outros testes que você pode executar seriam definir if
a /dev/urandom
em vez de /dev/zero
ou substituir as somas de verificação por dados aleatórios também.)