Fange wir mal mit ein paar Annahmen an. In Delphi
Win32, wenn man es mal genau betrachtet, ist eine Klassenreferenz eigentlich nicht mehr als ein Pointer (Zeiger) in die virtuelle Methodentabelle (VTM). Die VTM ist im ".text" bzw. ".code" Segment des Modules (.exe, .dll oder
Package) gespeichert. Dieses zu verstehen ist die Voraussetzung zur Ermittlung von Informationen des Speicherortes der Implementierung einer Klasse. Die Funktion
VirtualQueryEx erleichtert uns das Auffinden des Modules welches die gesuchte Klasse definiert. Man muss nur die Klassenreferenz als Parameter an die Funktion übergeben und erhält die gesuchte Information in einer MEMORY_BASIC_INFORMATION Struktur. Das Feld
AllocationBase speichert das
Handle (HMODULE) des Modules welches die Klasse implementiert. Dieser Wert kann wiederum an die Funktion
GetModuleFileName übergeben werden und denn vollständigen Pfad zum gesuchten Modul zu erhalten.