Using informal and formal techniques for the reverse engineering of C programs

  • Authors:
  • G. C. Gannod;B. H. C. Chengs

  • Affiliations:
  • -;-

  • Venue:
  • WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

Paper reprinted from ICSM '96. Reverse engineering of program code is the process of constructing a higher level abstraction of an implementation in order to facilitate the understanding of a system that may be in a "legacy" or "geriatric" state. Changing architectures and improvements in programming methods, including formal methods in software development and object-oriented programming, have prompted a need to reverse engineer and re-engineer program code. At the same time, there is a need to preserve the functionality of existing systems as well as reason about the correctness of changed code, each of which is facilitated by the existence of formal specifications. This paper describes an approach that incorporates the use of semi-formal analysis and formal program semantics to reverse engineer C programs. The reverse engineering techniques are applied to a portion of a ground-based command system for unmanned flight systems.