Show simple item record

dc.contributor.authorAisawa, William Akihiro Alves
dc.date.accessioned2020-10-26T20:02:11Z
dc.date.available2020-10-26T20:02:11Z
dc.date.issued2020-08-21
dc.identifier.citationAISAWA, William Akihiro Alves. Técnicas para identificação de funções de bibliotecas em binários vinculados estaticamente. 2020. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2020. Disponível em: https://repositorio.ufscar.br/handle/ufscar/13375.*
dc.identifier.urihttps://repositorio.ufscar.br/handle/ufscar/13375
dc.description.abstractStatically-linked libraries can cause the work of a reverse engineering analyst to get disproportionately hard compared to the work of the programmer who developed the software under study. This situation often arises not as an obfuscation tactic but as a measure to ease software distribution. For example, many malware programs designed for the Linux platform employ static linking to avoid compatibility problems when propagating to other systems. Many tools often used in reverse engineering practice, such as IDA Pro, Ghidra, Radare2, and Binary Ninja, have mechanisms that aim to recognize functions from these libraries, employing techniques that vary from byte sequence matching to the evaluation of control flow graph metrics. Works from the literature propose alternatives rarely adopted in practice, in part due to the lack of a comprehensive evaluation methodology. Besides, the techniques usually assume that the same version of the library used to compile a binary will be used to analyze it but neglect the issue of recognizing that version. There are also no studies about the impact of applying signatures with a different version than the one used to build the program. The present work studies these aspects on recognizing statically linked libraries by applying signatures generated from several distinct versions of the standard C language library and proposes a technique that allows fast recognition, up to 72% cases, of the version of the standard C library linked to Linux binary. This way, the work hopes to contribute to achieving better accuracy when recognizing statically linked library function.eng
dc.description.sponsorshipConselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)por
dc.language.isoporpor
dc.publisherUniversidade Federal de São Carlospor
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazil*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/*
dc.subjectEngenharia reversapor
dc.subjectGrafo de fluxo de controlepor
dc.subjectAnálise estáticapor
dc.subjectVinculação estáticapor
dc.subjectReverse engineeringeng
dc.subjectControl-flow grapheng
dc.subjectStatic analysiseng
dc.subjectStatic linkingeng
dc.titleTécnicas para identificação de funções de bibliotecas em binários vinculados estaticamentepor
dc.title.alternativeTechniques for identifying library functions in statically linked binarieseng
dc.typeDissertaçãopor
dc.contributor.advisor1Matias, Paulo
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/3792055796261017por
dc.description.resumoA vinculação de bibliotecas estáticas pode tornar o trabalho de um analista de engenharia reversa desproporcional ao trabalho do desenvolvedor que criou o programa sob estudo, pois torna-se necessário examinar uma quantidade muito maior de código. Muitas vezes essa situação ocorre não como tática de ofuscação, mas sim como uma medida para distribuir o programa de forma mais simples. Como exemplo, uma grande proporção de códigos maliciosos (malware) para a plataforma Linux utiliza vinculação estática para evitar problemas de compatibilidade ao se propagar. Diversas ferramentas comumente utilizadas nos trabalhos de engenharia reversa, como IDA Pro, Ghidra, Radare2 e Binary Ninja possuem mecanismos para tentar reconhecer as funções dessas bibliotecas, com técnicas que variam desde o casamento de sequências de bytes até a avaliação de métricas em grafos de controle de fluxo. Trabalhos da literatura propõe alternativas que raramente são adotadas na prática, em parte devido à falta de uma metodologia compreensiva de avaliação. Além disso, as técnicas geralmente assumem que o binário será analisado com uma assinatura gerada a partir da mesma versão da biblioteca utilizada para compilá-lo, mas o problema de reconhecer essa versão é negligenciado. Também não existem estudos sobre o impacto da aplicação de assinaturas com versão divergente da versão utilizada na compilação original de um programa. Este trabalho estuda esses aspectos do reconhecimento de funções de bibliotecas vinculadas estaticamente por meio da aplicação de assinaturas geradas a partir de uma base com diversas versões da biblioteca padrão da linguagem C, além de propor uma técnica que permite reconhecer de forma rápida, em até 72% dos casos, a biblioteca padrão da linguagem C vinculada em binários para a plataforma Linux. Desta forma, o trabalho pretende contribuir para uma maior acurácia no reconhecimento de funções de bibliotecas vinculadas estaticamentepor
dc.publisher.initialsUFSCarpor
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computação - PPGCCpor
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpor
dc.description.sponsorshipIdCNPq: 134236/2019-0por
dc.publisher.addressCâmpus São Carlospor
dc.contributor.authorlatteshttp://lattes.cnpq.br/3802544990771669por


Files in this item

Thumbnail
Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs 3.0 Brazil
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs 3.0 Brazil