Title :
Reverse engineering of assembler programs: a model-based approach and its logical basis
Author :
Lake, Tom ; Blanchard, Tim
Author_Institution :
InterGlossa Ltd., Reading, UK
Abstract :
The REAP project at InterGlossa is developing tools to support maintenance and reverse engineering of assembly language programs, concentrating on well-engineered hand-coded programs. Abstraction of assembly programs takes place in the context of a selected `engineering model´ which includes the definition of the instruction set semantics but also constraints on the programs similar to those found in ABIs. The process of translation takes the form of a large-scale inductive demonstration that the program meets the constraints of the `engineering model´ as the translated abstraction is produced. An engineer´s interface makes this manifest to the engineer supervising the translation. This approach can in principle handle programs whose models include a disciplined use of code self-modification or dynamic register bank switching. As intermediate language for the major analyses involved we use a representation based on the XANDF X/Open standard originating from the UK Defence Research Agency. XANDF is a standard for architecture neutral program representation which will permit support for analyses of portability. Concurrency is not yet covered but recent advances show how XANDF can be extended to encompass concurrency and distribution. We illustrate the effectiveness of the tools with examples taken from live Intel 8051 and Zilog Z80 systems
Keywords :
assembly language; instruction sets; reverse engineering; software maintenance; software portability; software standards; software tools; ABI; Defence Research Agency; Intel 8051; InterGlossa; REAP project; XANDF X/Open standard; Zilog Z80; architecture neutral program representation; assembly language programs; code self-modification; concurrency; dynamic register bank switching; engineering model; instruction set semantics; large-scale inductive demonstration; logical basis; model-based approach; reverse engineering; software maintenance; software portability; software tools; Assembly systems; Concurrent computing; Context modeling; Documentation; Embedded system; High level languages; Lakes; Large-scale systems; Reverse engineering; Safety;
Conference_Titel :
Reverse Engineering, 1996., Proceedings of the Third Working Conference on
Conference_Location :
Monterey, CA
Print_ISBN :
0-8186-7674-4
DOI :
10.1109/WCRE.1996.558872