Hallo,
ich lade mit LoadLibrary eine
DLL, hole mir mit GetProcAddr die Adresse einer Funktion und will dort was hinschreiben. Leider kommt dabei eine
AV. Ich dachte innerhalb meines Prozesses darf ich den Speicher umschreiben wie ich will, oder lieg ich da falsch?
Hier mein TestQuelltext
Delphi-Quellcode:
var lLib: Cardinal;
lAddr: PChar;
begin
lLib := LoadLibrary('user32.dll');
if lLib <> 0 then
begin
lAddr := GetProcAddress(lLib, 'MessageBoxA');
lAddr[0] := '5';
Das die '5' unsinnig ist weiß ich, mir ging es erstmal darum überhaupt dort hin schreiben zu können.
Warum geht das nicht?