Using a decompiler for real-world source recovery

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 gai...

Full description

Saved in:
Bibliographic Details
Published in11th Working Conference on Reverse Engineering pp. 27 - 36
Main Authors Emmerik, M.V., Waddington, T.
Format Conference Proceeding
LanguageEnglish
Published Los Alamitos CA IEEE 2004
Subjects
Online AccessGet full text
ISBN9780769522432
0769522432
ISSN1095-1350
DOI10.1109/WCRE.2004.42

Cover

More Information
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 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.
ISBN:9780769522432
0769522432
ISSN:1095-1350
DOI:10.1109/WCRE.2004.42