Detecção de similaridade de códigos fontes usando grafos de dependência de programa
| Ano de defesa: | 2020 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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, its 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, its 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 |