Detecção de similaridade de códigos fontes usando grafos de dependência de programa

Detalhes bibliográficos
Ano de defesa: 2020
Autor(a) principal: Silva, Clóvis Daniel Souza
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Estadual do Ceará
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://siduece.uece.br/siduece/trabalhoAcademicoPublico.jsf?id=95524
Resumo: <div style="text-align: justify;"><span style="font-size: 10pt;">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.</span></div>
id UECE-0_d04b64e4a42018ee03eb651bf34d5c15
oai_identifier_str oai:uece.br:95524
network_acronym_str UECE-0
network_name_str Repositório Institucional da UECE
repository_id_str
spelling Detecção de similaridade de códigos fontes usando grafos de dependência de programaCiência da computação Código fonte Isomorfismo em grafos<div style="text-align: justify;"><span style="font-size: 10pt;">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.</span></div><div style="text-align: justify;">To define if two or more programs are similar, namely, to define if they present the same flow structure, usage of memory and objective, it’s a non-trivial problem, said that the program may be written in many forms. This problem gets harder when the code passes by an obfuscation process to hide its original identity. This can happen in cases of polymorphic malwares and software plagiarism. A technique used to compare the samples are similar, it’s to model them as graphs that capture the features of the program. In this context, the problem is to verify how close of an isomorphism both graphs are. Therefore, the present work aims to investigate the existing techniques and models, as well as propose and adapt those techniques used to detect similarity between source code. This paper discusses the existing techniques and proposes a new approach using the Hungarian algorithm and an artificial neural network to detect similarity between programs written in C language retrieved from the competitive programming site, CodeForces, (CODEFORCES, CodeForces, 2010). Keywords: Program Dependency Graph. Detection. Plagiarism. Graph Isomorphism.</div>Universidade Estadual do CearáGERARDO VALDISIO RODRIGUES VIANASilva, Clóvis Daniel Souza2020-04-01T11:15:13Z2020info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://siduece.uece.br/siduece/trabalhoAcademicoPublico.jsf?id=95524info:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UECEinstname:Universidade Estadual do Cearáinstacron:UECE2020-04-01T11:15:13Zoai:uece.br:95524Repositório InstitucionalPUBhttps://siduece.uece.br/siduece/api/oai/requestopendoar:2020-04-01T11:15:13Repositório Institucional da UECE - Universidade Estadual do Cearáfalse
dc.title.none.fl_str_mv Detecção de similaridade de códigos fontes usando grafos de dependência de programa
title Detecção de similaridade de códigos fontes usando grafos de dependência de programa
spellingShingle Detecção de similaridade de códigos fontes usando grafos de dependência de programa
Silva, Clóvis Daniel Souza
Ciência da computação
Código fonte
Isomorfismo em grafos
title_short Detecção de similaridade de códigos fontes usando grafos de dependência de programa
title_full Detecção de similaridade de códigos fontes usando grafos de dependência de programa
title_fullStr Detecção de similaridade de códigos fontes usando grafos de dependência de programa
title_full_unstemmed Detecção de similaridade de códigos fontes usando grafos de dependência de programa
title_sort Detecção de similaridade de códigos fontes usando grafos de dependência de programa
author Silva, Clóvis Daniel Souza
author_facet Silva, Clóvis Daniel Souza
author_role author
dc.contributor.none.fl_str_mv GERARDO VALDISIO RODRIGUES VIANA
dc.contributor.author.fl_str_mv Silva, Clóvis Daniel Souza
dc.subject.por.fl_str_mv Ciência da computação
Código fonte
Isomorfismo em grafos
topic Ciência da computação
Código fonte
Isomorfismo em grafos
description <div style="text-align: justify;"><span style="font-size: 10pt;">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.</span></div>
publishDate 2020
dc.date.none.fl_str_mv 2020-04-01T11:15:13Z
2020
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://siduece.uece.br/siduece/trabalhoAcademicoPublico.jsf?id=95524
url https://siduece.uece.br/siduece/trabalhoAcademicoPublico.jsf?id=95524
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Estadual do Ceará
publisher.none.fl_str_mv Universidade Estadual do Ceará
dc.source.none.fl_str_mv reponame:Repositório Institucional da UECE
instname:Universidade Estadual do Ceará
instacron:UECE
instname_str Universidade Estadual do Ceará
instacron_str UECE
institution UECE
reponame_str Repositório Institucional da UECE
collection Repositório Institucional da UECE
repository.name.fl_str_mv Repositório Institucional da UECE - Universidade Estadual do Ceará
repository.mail.fl_str_mv
_version_ 1828296401969217536