Também não entendo muito disso, mas creio que seria relativamente fácil fazer esse tipo de análise em projetos de código aberto.
Bom, um antivirus nada mais é do que uma ferramenta que verifica a assinatura de outros programas contra um banco de dados de códigos maliciosos conhecidos.
Tendo isso em mente, existem ferramentas que verificam o código de um contrato em busca de bugs e exploits conhecidos. Por exemplo, um contrato que permite a transferencia de todas as moedas para um endereço externo.
Por outro lado, é muito dificil separar o que é um código legitimo de um código malicioso. E se esse contrato realmente deve transferir as moedas para outro endereço/contrato por que isso faz parte do projeto? Sempre vai ser relativo (na visão do código) o que é certo e errado.
O que me vem a mente é o projeto Lossless.cash, que tenta proteger tokens de rugs e exploits ao adicionar uma camada extra de controle que pode, por exemplo, reverter transações de acordo com a resposta da comunidade.