Wie ist es möglich den Inhalt einer Funktion zu überschreiben?
Sowohl ein Versuch via
PByte(@Funktionsname)^:= EIN_WERT;
führt zu einer EAccessViolation, als auch das Überschreiben durch WriteProcessMemory nach
OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
scheitert (ERROR_NOACCESS
998 (0x3E6), Invalid
access to memory location.), obwohl sich andere Speicherwerte (globale Variablen etwa) ändern lassen. Hierbei scheint es keine Rolle zu spielen, ob der Prozess mit oder ohne Admin-Rechte gestartet wurde.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?