Interprocedural control flow reconstruction

Andrea Flexeder, Bogdan Mihaila, Michael Petter, Helmut Seidl

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

14 Scopus citations

Abstract

In this paper we provide an interprocedural algorithm for reconstructing the control flow of assembly code in presence of indirect jumps, call instructions and returns. In case that the underlying assembly code is the output of a compiler, indirect jumps primarily originate from high-level switch statements. For these, our methods succeed in resolving indirect jumps with high accuracy. We show that by explicitly handling procedure calls, additional precision is gained at calls to procedures exiting the program as well as through the analysis of side-effects of procedures onto the local state of the caller. Our prototypical implementation applied to real-world examples shows that this approach yields reliable and meaningful results with decent efficiency.

Original languageEnglish
Title of host publicationProgramming Languages and Systems - 8th Asian Symposium, APLAS 2010, Proceedings
Pages188-203
Number of pages16
DOIs
StatePublished - 2010
Event8th Asian Symposium on Programming Languages and Systems, APLAS 2010 - Shanghai, China
Duration: 28 Nov 20101 Dec 2010

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6461 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference8th Asian Symposium on Programming Languages and Systems, APLAS 2010
Country/TerritoryChina
CityShanghai
Period28/11/101/12/10

Keywords

  • binary analysis
  • control flow reconstruction
  • reverse engineering
  • static analysis

Fingerprint

Dive into the research topics of 'Interprocedural control flow reconstruction'. Together they form a unique fingerprint.

Cite this