Wenn ich das mit dem VirtualProtect jetzt richtig gesehen habe, müsste ich den Befehl also insgesamt 4x ausführen und dabei als ersten Parameter den Offset, dann die Größe des Bereiches gefolgt von der gewünschten Operation und schlussendlich einen willkürlichen Parameter der einfach nur dafür da ist die Voreinstellung zu sichern.
Der erste Code läuft also von 42053B bis 42053F was einer größe von 4 entspricht.
Delphi-Quellcode:
Code := StrToHex('MOV EDX,OFFSET '+NewOffset);
VirtualProtect('$42053B', 4, PAGE_EXECUTE_READWRITE, OldProtect);
PByte($0042053B)^ := Code;
Edit:
Ach entschuldige bitte mein Kopf ist heute scheinbar nichtmehr so ganz auf der Höhe... PByte kann ja logisch auch nur das Byte schreiben, das dann natürlich vorraussetzt das ich die Hex werte Pärchenweise übergeben müsste...