Zitat:
es geht darum zur Laufzeit zu überprüfen, ob mein Programm gepatched oder verändert worden ist.
Wenn das
OS deine EXE von Platte in den Speicher lädt, dann patcht in fakt das
OS dein Image im Speicher. Das
OS zerlegt erstmal alle Sektions der EXE und lädt sie in andere, zerlegte Speicherbereiche. Danach patcht es in den Codesegmenten, sogar Resourcen im Speicher zb. die Relokationen. Da diese Relokationen abhängig davon sind WO im Speicher die einzelnen Sections geladen werden, wird je nach aktueller Speicherbelegung anders realokiert.
All dieses verhindert einen einfachen Algorithmus zur Ermittlung einer Prüfsumme zu programmieren. Zudem ist es dann sogar abhängig von der jeweiligen
OS Version.
Unveränderlich kann man aber das Image der EXE auf Platte ansehen. Weshalb auch MS die Digitalen Signaturen zum Scutz dieser Images einfach hinten an die EXE dranhängt. Das was du suchst gibt es also schon, Stichwort Codesignaturen.
Gruß Hagen