DocumentCode
2223717
Title
Using a decompiler for real-world source recovery
Author
Emmerik, M.V. ; Waddington, Trent
Author_Institution
Sch. of ITEE, Queensland Univ., Brisbane, Qld., Australia
fYear
2004
fDate
8-12 Nov. 2004
Firstpage
27
Lastpage
36
Abstract
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 work 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.
Keywords
Java; program compilers; reverse engineering; Java decompilers; commercial disassembler; commercial projects; executable decompilers; native executable file; pattern recognition; program compilers; program prototype; real-world Windows-based application; real-world source recovery; reverse engineering; source code recovery; Australia; History; Java; Mathematics; Pattern recognition; Prototypes; Reverse engineering; Software maintenance; Speech analysis; User interfaces;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering, 2004. Proceedings. 11th Working Conference on
ISSN
1095-1350
Print_ISBN
0-7695-2243-2
Type
conf
DOI
10.1109/WCRE.2004.42
Filename
1374303
Link To Document