Interprocedural Data Flow Recovery of High-Level Language Code from Assembly

Source: CiteSeer

ABSTRACT We evaluate a CISC interprocedural data flow technique for the recovery of high-level language code from assembly code

  • [Show abstract] [Hide abstract]
    ABSTRACT: Methods of improving the decompilation quality, that is, the reconstruction of a program in a high-level language from a given program in a low-level language, are considered. Decompilation is considered as a reverse engineering problem; problems of decompilation quality are examined, and metrics for assessing this quality are proposed.
    Programming and Computer Software 01/2010; 36:343-362. · 0.11 Impact Factor
  • [Show abstract] [Hide abstract]
    ABSTRACT: When mining security vulnerabilities in software, a structural intermediate representation of binary code should be obtained first. In this paper, we propose PANDA, a vulnerability-mining-oriented intermediate language and a series of algorithms for assembler understanding based on flow analysis. We implement a lightweight prototype system named BEST for assembler structural representation. The system uses control flow analysis and data flow analysis techniques to identify common control structures, analyze executive flow of a program, reconstruct expressions and functions, find data dependency, finally transform the assembler into a structured PANDA intermediate language program. Experiment results show that our system produces high quality intermediate language programs for further automatic security analysis.
    Management and Service Science (MASS), 2010 International Conference on; 09/2010
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: This paper presents an algorithm for automatic type reconstruction from target assembly code compiled by a C compiler. The primitive language types are recovered by an iterative algorithm, which operates over the lattice of primitive types' properties. Layout of composite types is reconstructed by building set of accessible offsets for each composite type. The algorithm is the essential part of a tool for program decompilation being developed by the authors.
    Reverse Engineering, 2008. WCRE '08. 15th Working Conference on; 11/2008


1 Download
Available from