Type-based decompilation: (Or program reconstruction via type reconstruction)

44Citations
Citations of this article
24Readers
Mendeley users who have this article in their library.

Abstract

We describe a system which decompiles (reverse engineers) C programs from target machine code by type-inference techniques. This extends recent trends in the converse process of compiling high-level languages whereby type information is preserved during compilation. The algorithms remain independent of the particular architecture by virtue of treating target instructions as register-transfer specifications. Target code expressed in such RTL form is then transformed into SSA form (undoing register colouring etc.); this then generates a set of type con- straints. Iteration and recursion over data-structures causes synthesis of appropriate recursive C structs; this is triggered by and resolves occurs- check constraint violation. Other constraint violations are resolved by C's casts and unions. In the limit we use heuristics to select between equally suitable C code|a good GUI would clearly facilitate its professional use.

Cite

CITATION STYLE

APA

Mycroft, A. (1999). Type-based decompilation: (Or program reconstruction via type reconstruction). In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1576, pp. 208–223). Springer Verlag. https://doi.org/10.1007/3-540-49099-X_14

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free