Eu escrevi uma função que verifica se há um arquivo corrompido usando uma soma de verificação CRC.
Para testá-lo, acabei de abrir o arquivo e embaralhar o conteúdo com um editor hexadecimal. O problema é que não acredito que esta seja a maneira correta de gerar um arquivo corrompido.
Existe alguma outra maneira de criar uma "corrupção controlada", para que não seja totalmente aleatória, mas simule o que acontece com arquivos corrompidos reais? Eu nunca tive que corromper algo de propósito, então não tenho muita certeza de como fazê-lo, além da mistura aleatória de dados em um arquivo.