Mandrake: a tool for reverse-engineering IBM assembly code

Paul H. Morris, Robert E. Filman · 2002

Assembly language code provides both a daunting challenge and a sterling opportunity for software reengineering. Ideally, one would like a system which, when fed assembly code, would automatically produce quality, maintainable high-level programs. That ideal, if not impossible, is certainly far beyond current technology. However, automation can profitably be applied to part of the task of reverse engineering assembly code, by producing a "draft" of a high-level language version, to be verified modified and polished by competent software reengineers. The authors describe their progress in developing a reengineer's apprentice to aid reverse engineering of handwritten IBM 370 assembly code by automatically translating it to a higher-level form. The paper explores the problems that arise and some potential solutions, and describes the implementation of Mandrake, a system that performs an interesting collection of the reengineer's apprentice tasks.

Read the paper · More papers on PaperTik