Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Hook auf Propertys, Konstruktoren, Destruktoren?

  Alt 22. Okt 2007, 17:50
Dass das hooken von .Free nichts bringt, hast du ja schon gesehen.
Also musst du .Destroy abfangen.
Diese Methode ist aber in der VMT abgelegt.
Ich hätte hier 2 (ungetestete!!!) Varianten anzubieten:
Delphi-Quellcode:
function GetDestructor(AClass:TClass):Pointer;
asm
        TEST EAX,EAX
        JE @@exit
        MOV EAX, [EAX].vmtDestroy
@@exit:
end;


function GetDestructor2(AClass:TClass):Pointer;
begin
   if Assigned(AClass) then
   begin
      Result := Pointer(AClass);
      Result := Pointer(PInteger(PChar(Result)+vmtDestroy)^);
   end
   else
      Result := nil;
end;
Andreas
  Mit Zitat antworten Zitat