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

Cheng, Gannod
1996 Proceedings of International Conference on Software Maintenance 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
more » ... 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 groundbased command system for unmanned flight systems.
doi:10.1109/icsm.1996.565015 dblp:conf/icsm/GannodC96 fatcat:4hn72sso7rembm62zciymeg2gi