Amigo, não sei onde tu leu isso mas não é assim que um antivírus funciona. Para pra pensar: se funcionassem assim eles não conseguiriam, por exemplo, identificar um executável infectado por um vírus. Porque o vírus modifica o executável, logo a hash de cada executável infectado vai ser diferente. E também se um único bit do arquivo fosse modificado, o antivírus não conseguiria identificar mais. O que tornaria a vida dos desenvolvedores de malwares extremamente fácil.
Um antivírus pode ter vários mecanismos de proteção (incluindo sandbox, análise de redes/DNS etc.) mas os dois principais seriam:
- Detecção de arquivos infectados (que é o que você tentou explicar aqui) com base em padrões
- Detecção de comportamento suspeito de um processo com base em heurísticas
Falando exclusivamente do primeiro, ele não funciona comparando hashes de arquivos. Um analista de malware vai fazer uma análise no malware e compartilhar seus resultados em um paper, descrevendo o comportamento do malware. Com isso ele também vai escrever um código que faz a detecção de padrões no arquivo que pode ser usado para identificar o malware. Esse padrão não é uma coisa específica, pode ser: uma string, uma sequência de instruções, a hash da tabela de importações (e não do arquivo todo) etc.
Cada antivírus pode ter uma engine própria para isso, então não me pergunte em qual linguagem isso é escrito. Mas se você quiser ter uma noção de como é, dá uma olhada no Yara: