Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

AV beim schreiben in DLL-Adressraum

  Alt 4. Jul 2006, 10:05
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?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat