Procedure abstraction recovery from binary code

Cristina Cifuentes, Doug Simon · 2002

Binary translation (the automatic translation of executable programs from one machine to another) requires analyses and transformations that could be used in a wide variety of tools intended to reverse engineer binary codes. Our approach to binary translation, which is designed to allow both source and target machines to be changed at low cost, is based on a combination of machine descriptions, binary interface descriptions and machine-independent analyses. This paper deals with the recovery of high-level procedure calls from binary code (i.e. the recovery of parameters and return locations) in a machine-independent way. The use of a specification language called PAL (Procedure Abstraction Language) is described, as well as the machine-independent recovery analysis based on PAL. The work described in this paper has been integrated into UQBT (University of Queensland Binary Translator), which is a resourceable binary translation framework. Translations across binaries for SPARC/sup TM/, Pentium and Java/sup TM/ virtual machine architectures have been achieved.

Read the paper · More papers on PaperTik