TY - GEN
T1 - Interprocedural control flow reconstruction
AU - Flexeder, Andrea
AU - Mihaila, Bogdan
AU - Petter, Michael
AU - Seidl, Helmut
PY - 2010
Y1 - 2010
N2 - 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.
AB - 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.
KW - binary analysis
KW - control flow reconstruction
KW - reverse engineering
KW - static analysis
UR - http://www.scopus.com/inward/record.url?scp=78650753665&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-17164-2_14
DO - 10.1007/978-3-642-17164-2_14
M3 - Conference contribution
AN - SCOPUS:78650753665
SN - 364217163X
SN - 9783642171635
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 188
EP - 203
BT - Programming Languages and Systems - 8th Asian Symposium, APLAS 2010, Proceedings
T2 - 8th Asian Symposium on Programming Languages and Systems, APLAS 2010
Y2 - 28 November 2010 through 1 December 2010
ER -