loading...
Using a Decompiler for Real-World Source Recovery
Delft, The Netherlands November 08-November 12
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/WCRE.2004.4211th Working Conference on Reverse En ...
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Mike Van Emmerik, University of Queensland
Trent Waddington, University of Queensland

Despite their 40 year history, native executable decompilers have found very limited practical application in commercial projects. The success of Java decompilers is well known, and a few decompilers perform well by recognising patterns from specific compilers.

This paper describes the experience gained from applying a native executable decompiler, assisted by a commercial disassembler and hand editing, to a real-world Windows-based application. The clients had source code for a prototype version of the program, and an executable that performed better, for which the source code was not available. The project was to recover the algorithm at the core of the program, and if time permitted, the recovery of other pieces of source code.

Despite the difficulties, the core algorithm was successfully decompiled, and a portion of the rest of the program as well. There were surprises, including the ability to recover almost all original class names, and the complete class hierarchy.

Index Terms:
Reverse engineering, decompilation, source code recovery, native executable file, experience
Citation:
Mike Van Emmerik, Trent Waddington, "Using a Decompiler for Real-World Source Recovery," wcre, pp.27-36, 11th Working Conference on Reverse Engineering (WCRE 2004), 2004
Usage of this product signifies your acceptance of the Terms of Use.