Umeå University's logo

umu.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
INCREASING COMPLETENESS OF ANDROID BINARY CFGS IN ANGR
Umeå University, Faculty of Science and Technology, Department of Computing Science.
2023 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

Control Flow Graphs are widely used for static binary analysis today but their completeness is often lacking. The main problem when recovering Control Flow Graphs from binaries is indirect jump recovery where target addresses are stored in a register or memory. This problem is prevalent in the Python framework Angr when trying to generate a CFGFast for an Android binary compiled with the Bionic function __libc_init. At the moment an error is thrown, stating that the function static_exits, which resolves control flow transfers for AngrSimProcedures, is not implemented for the SimProcedure __libc_init. In this paper, the missing function static_exits is implemented and verified. An answer to how the implementation of static_exits affects the CFGFast completeness in Angr is also presented. To answer the research question an experiment was performed on 11 binaries compiled with the Bionic function __libc_init, where CFGFasts were recovered for each binary file using the implemented static_exits function. The results gathered show that the expected indirect jump performed in __libc_init was resolved for each of the 11 binaries. The conclusion from this paper is that the completeness of CFGFasts in Angr recovered from binaries compiled with the Bionic library did increase after implementing the static_exits function.

Place, publisher, year, edition, pages
2023.
Series
UMNAD ; 1392
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:umu:diva-209810OAI: oai:DiVA.org:umu-209810DiVA, id: diva2:1767614
Educational program
Bachelor of Science Programme in Computing Science
Supervisors
Examiners
Available from: 2023-06-15 Created: 2023-06-14 Last updated: 2023-06-15Bibliographically approved

Open Access in DiVA

fulltext(3070 kB)342 downloads
File information
File name FULLTEXT01.pdfFile size 3070 kBChecksum SHA-512
23598380d8600e91a3be9c4f59e761da6ed7dbada6d126ec20397fdeb98121f79b92e1f83a4be0c60081f39a90b59a9477640414fda953b0bd9f50965cb6004b
Type fulltextMimetype application/pdf

By organisation
Department of Computing Science
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 342 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 256 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf