Using a decompiler for real-world source recovery

Van Emmerik, Mike and Waddington, Trent (2004). Using a decompiler for real-world source recovery. In: B. Werner, Proceedings of the 11th Working Conference on Reverse Engineering. Working Conference on Reverse Engineering, Delft, Netherlands, (27-36). 8-12 November 2004. doi:10.1109/WCRE.2004.42

Attached Files (Some files may be inaccessible until you login with your UQ eSpace credentials)
Name Description MIMEType Size Downloads
experience.pdf experience.pdf application/pdf 91.09KB 0
experience.ps experience.ps Click to show the corresponding preview/stream application/postscript 117.02KB 0

Author Van Emmerik, Mike
Waddington, Trent
Title of paper Using a decompiler for real-world source recovery
Conference name Working Conference on Reverse Engineering
Conference location Delft, Netherlands
Conference dates 8-12 November 2004
Proceedings title Proceedings of the 11th Working Conference on Reverse Engineering
Journal name Proceedings - Working Conference on Reverse Engineering, WCRE
Place of Publication Los Alamitos, CA, U.S.A.
Publisher IEEE Computer Society
Publication Year 2004
Sub-type Fully published paper
DOI 10.1109/WCRE.2004.42
Open Access Status File (Author Post-print)
ISBN 0-7695-2243-2
ISSN 1095-1350
Editor B. Werner
Start page 27
End page 36
Total pages 10
Language eng
Abstract/Summary 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.
Subjects 280302 Software Engineering
Keyword Reverse engineering
Program compilers
Java
Q-Index Code E1
Q-Index Status Provisional Code
Institutional Status Unknown

 
Versions
Version Filter Type
Citation counts: Scopus Citation Count Cited 26 times in Scopus Article | Citations
Google Scholar Search Google Scholar
Created: Thu, 17 Feb 2005, 10:00:00 EST by Mike Van Emmerik on behalf of School of Information Technol and Elec Engineering