A tool chain for reverse engineering C++ applications

  • Authors:
  • Nicholas A. Kraft;Brian A. Malloy;James F. Power

  • Affiliations:
  • Department of Computer Science, Clemson University, Clemson, SC 29634, USA;Department of Computer Science, Clemson University, Clemson, SC 29634, USA;Department of Computer Science, National University of Ireland, Maynooth, Maynooth, Ireland

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a tool chain that enables experimentation and study of real C++ applications. Our tool chain enables reverse engineering and program analysis by exploiting gcc, and thus accepts any C++ application that can be analysed by the C++ parser and front end of gcc. Our current test suite consists of large, open-source applications with diverse problem domains, including language processing and gaming. Our tool chain is designed using a GXL-based pipe-filter architecture; therefore, the individual applications and libraries that constitute our tool chain each provide a point of access. The preferred point of access is the g4api Application Programming Interface (API), which is located at the end of the chain. g4api provides access to information about the C++ program under study, including information about declarations, such as classes (including template instantiations); namespaces; functions; and variables, statements and some expressions. Access to the information is via either a pointer to the global namespace, or a list interface.