Você pode experimentar o programa TrIDNet (há também um CLI e uma versão on-line ). Ele identifica arquivos baseados em assinaturas binárias, com base em uma biblioteca interna (e extensível). Aqui está uma lista das extensões de arquivo que ele pode identificar por padrão, embora seja possível adicionar uma definição para um novo tipo manualmente.
Observe que, se a assinatura binária do arquivo for not intacta, o software não saberá que o arquivo está corrompido. É a implementação do aplicativo que usa o arquivo para verificar se há corrupção (já que não há como "apenas saber" se um arquivo está corrompido).
Esta é apenas a maneira como os arquivos funcionam, cabe ao programa que usa os arquivos binários para verificar se eles estão corrompidos ou não (alguns tipos de arquivo armazenam checksums dentro deles).