DocumentCode
2363512
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
fYear
196
fDate
8-10 Nov 196
Firstpage
67
Lastpage
75
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;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering, 1996., Proceedings of the Third Working Conference on
Conference_Location
Monterey, CA
Print_ISBN
0-8186-7674-4
Type
conf
DOI
10.1109/WCRE.1996.558872
Filename
558872
Link To Document