Isto pode variar de antivírus para antivírus mas essencialmente existem duas estratégias para detectar ficheiros infectados.
Que fique claro que os antivírus não precisam e não se preocupam com o código fonte das aplicações ou pelo menos aparentam.Existem então principalmente duas estratégias para detectar um vírus:
Assinatura no código executável
Procurar por uma assinatura no código executável. O antivírus verifica se tem uma certa sequência de bytes que é sabido anteriormente que aquilo é um vírus.
Padrões de Código
Outra forma que os antivírus analisam é verificar se há determinadas APIs ou padrões de código que de uma certa forma que podem ser usadas para causar problemas. Por isso é que há falsos positivos em certas aplicações.
Certamente que há outras estratégias, verificar algo durante uma execução é possível ou poder interceptar certas chamadas de APIs.
Todas instruções que um processador executa e tudo o que a aplicação invoca na aplicação está codificado num binário. Todos aqueles bytes tem um significado que pode ser entendido por quem sabe (o processador por exemplo), não é algo aleatório ou encriptado.
Se o código é compilado, não dá para saber como foi escrito, como os antivírus sabem que ele pode ser perigoso?
Dá para saber como ele está escrito (em forma binária), não dá para saber o exacto código fonte que originou este binário.
Descompilar
Tu não consegues saber o código fonte de um programa que tens no computador, mas é possível obter algo próximo ao código fonte que gerou aquele binário.
Não obterás algo igual, faltaram comentários, nomes de símbolos locais, e talvez até símbolos públicos modificados, e o fluxo exacto não será o mesmo, apenas criará o mesmo resultado.
Descompilar é especialmente possível em linguagens que usam bytecodes e metadados. Mas quando o código é ofuscado torna-se bem mais difícil conseguir resultados usáveis.
Mas não é exactamente um processo fácil e está longe de gerar bons resultados na maioria dos casos.
O objectivo do antivírus não é obter o código fonte, é apenas entender o que o binário faz.
Protecção de fonte
É possível roubar código de qualquer aplicação mas é preciso entender esse mesmo código e hoje em dia já existe sistemas de patentes e protecção de código.
Um código bom é demasiado complexo para se entender e os especialistas não se interessam muito em roubar aquilo ou simplesmente não vale a pena o trabalho.
Por isso os antivírus utilizam essencialmente aquelas duas estratégias.
Apenas uma curiosidade.
Post A Comment:
0 comments: