Mostrar registro simples

dc.contributor.advisorNobre, Jéferson Campospt_BR
dc.contributor.authorRobert, Robertapt_BR
dc.date.accessioned2024-03-22T05:07:28Zpt_BR
dc.date.issued2024pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/274088pt_BR
dc.description.abstractO aumento significativo da utilização de plataformas remotas de ensino de programação desde a crise do COVID-19, aliado aos recentes progressos na área de Inteligencia Artificial (IA) generativa, trouxeram novos desafios à forma como códigos fonte são tipicamente avaliados em busca de plágios. O esforço necessário para cometer-se plágio diminuiu, seja utilizando técnicas automatizadas de transformação sintática, ou gerando versões alternativas do código fonte através de IA generativa. A maioria das abordagens atuais usadas na construção de ferramentas anti-plágio não são robustas o suficiente para lidar com o novo escopo de tais avanços tecnológicos. Trabalhos existentes na literatura sobre detectores de clonagem de código demonstraram que existem transformações sintáticas que alteram o código de tal forma que os algoritmos de representação sintática/semântica usados na avaliação de plágio (e.g., AST—árvore de sintaxe abstrata; CFG—grafo de controle de fluxo; PDG—grafo de dependência de programa; e Tokenização) não reconhecem o código alterado como um possível clone. Atualmente, a abordagem de otimização de código binário já é reconhecida como uma técnica de ofuscação e manipulação de códigos maliciosos na área de evasão de antivírus, mas pouca atenção tem sido dada ao seu potencial na construção de ferramentas anti-plágio. Neste trabalho, iremos propor um método para detecção de plágio que estende as capacidades demonstradas por abordagens existentes. Nosso método consiste em uma técnica que não apenas analisa códigos fonte, ou apenas os arquivos binários correspondentes resultantes da compilação, e sim efetua uma análise do binário resultante da compilação com otimizações. Intuitivamente, o uso de otimizações de compilação serve como um “filtro reverso”, removendo do código binário possíveis fontes de ofuscação implementadas pelo plagiador em sua modificação de um código fonte original. Nossos experimentos confirmam esta correlação entre código binário otimizado e seu código fonte original. A avaliação empírica de nosso método demonstra uma utilização para calcular níveis de similaridade entre códigos binários, tendo boa eficácia na detecção de plágios mesmo quando os códigos fontes correspondentes tenham sofrido alterações sintáticas complexas. Dessa forma, o método aqui proposto pode ser utilizado de forma efetiva como uma ferramenta complementar às existentes para efetuar análises de plágio.pt_BR
dc.description.abstractThe significant increase in the use of remote programming education platforms since the COVID-19 crisis, coupled with recent advances in the field of generative Artificial Intelligence (AI), has brought new challenges to the way source codes are typically evaluated for plagiarism. The effort required to commit plagiarism has decreased, whether by using automated syntactic transformation techniques or by generating alternative versions of the source code through generative AI. Most of the current approaches used in the construction of anti-plagiarism tools are not robust enough to deal with the new scope of such technological advances. Existing works in the literature on code cloning detectors have demonstrated that there are syntactic transformations that change the code in such a way that the syntactic/semantic representation algorithms used in plagiarism assessment (e.g., AST—abstract syntax tree; CFG—control flow graph; PDG—program dependency graph; and Tokenization) do not recognize the altered code as a possible clone. Currently, the approach of binary code optimization is already recognized as an obfuscation technique and manipulation of malicious codes in the area of antivirus evasion, but little attention has been given to its potential in the construction of anti-plagiarism tools. In this work, we propose a method for plagiarism detection that extends the capabilities demonstrated by existing approaches. Our method consists of a technique that not only analyzes source codes, or just the corresponding binary files resulting from compilation but also performs an analysis of the binary resulting from the compilation *with optimizations*. Intuitively, the use of compilation optimizations serves as a "reverse filter," removing from the binary code possible sources of obfuscation implemented by the plagiarist in their modification of an original source code. Our experiments confirm this correlation between optimized binary code and its original source code. The empirical evaluation of our method demonstrates a use for calculating levels of similarity between binary codes, having good efficiency in detecting plagiarism even when the corresponding source codes have undergone complex syntactic changes. Thus, we believe that the method proposed here can be effectively used as a complementary tool to existing ones for conducting plagiarism analysis.en
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoporpt_BR
dc.rightsOpen Accessen
dc.subjectDetecção de plágiopt_BR
dc.subjectCodigo binariopt_BR
dc.subjectSegurançapt_BR
dc.titleROBiT : um método de detecção de plágio baseado em otimizações de arquivos bináriospt_BR
dc.title.alternativeROBiT : reverse optimization binary transformation anti-plagiarism systemen
dc.typeTrabalho de conclusão de graduaçãopt_BR
dc.contributor.advisor-coSilva, Bruno Castro dapt_BR
dc.identifier.nrb001198823pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2024pt_BR
dc.degree.graduationCiência da Computação: Ênfase em Ciência da Computação: Bachareladopt_BR
dc.degree.levelgraduaçãopt_BR


Thumbnail
   

Este item está licenciado na Creative Commons License

Mostrar registro simples