GameFunctionsTools

Check a list of class layouts against the executable they came from.

Class layouts written by hand are easy to get nearly right. GameFunctionsTools takes a folder of claimed field offsets and the executable they describe, and says which ones the binary itself supports.

How it checks

  1. RTTI. It reads the PE file directly and finds the compiler's type descriptors, object locators and class hierarchies, which name the classes, their bases and their vtables.
  2. Disassembly (optional, through Capstone). For each claimed offset it disassembles the class's own functions and looks for the offset as an operand.
  3. A verdict for every offset: CONFIRMED, CONFLICT, NO_ANCHOR or ERROR, with the instruction that decided it.

When a file has no RTTI, or most of its code is compressed, a diagnostics pass says which of the two it is instead of returning an empty list. Results export as JSON, CSV, or a C++ .inl holding only the confirmed offsets. A target is fingerprinted once and recognised the next time it is opened.