Detecção de similaridade de códigos fontes usando grafos de dependência de programa - Silva, Clóvis Daniel Souza (2020)
Definir se dois ou mais programas são similares, isto é, definir se apresentam a mesma estrutura de fluxo de controle, uso de memória e objetivo é um problema não trivial, visto que um mesmo programa pode ser escrito de formas distintas. Este problema se torna ainda mais difícil quando cada código passa por um processo de camuflagem, a ofuscação, com o intuito de esconder a identidade original do programa. Isto pode ocorrer em casos de malwares polimórficos, ou mesmo em casos de plágio de programa. Uma técnica usada para realizar a comparação entre os códigos consiste em modelar os mesmos como grafos que capturem as características do programa. Nesse contexto, o problema em questão é o mesmo de verificar o quão perto de um isomorfismo estão as estruturas. Assim, o presente trabalho objetiva investigar as técnicas e modelos existentes, assim como propor e adaptar estas técnicas usadas para detecção de similaridade entre códigos fontes. Este trabalho discute as técnicas existentes para o problema de detecção de similaridade de código fonte, e propõe uma nova abordagem usando o método húngaro e uma rede neural artificial para detectar similaridade entre programas escritos em C, retirados do site de programação competitiva CodeForces (CODEFORCES, CodeForces, 2010). Palavras-chave: Grafos de Dependência de Programa. Detecção. Similaridade de Código Fonte. Isomorfismo em Grafos.