Thema: Delphi Debugging! nur wie?

Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Debugging! nur wie?

  Alt 12. Jan 2006, 10:13
Wenn du einen Breakpoint setzen willst, dann musst du den Maschinencode an der betreffenden Stelle überschreiben. Dort sollte dann eine "int 3"-Anweisung stehen. Natürlich musst du dir zum Fortfahren den alten Inhalt merken. Die "int 3"-Anweisung besteht aus einem einzigen Byte ($CC), daher kann man sie an jeder Stelle einfügen.

Die API-Befehle, die du dafür brauchst sind VirtualProtect und WriteProcessMemory. Such mal hier im Forum danach, da findest du einige Beispiele.

Also:
1. Das fremde Programm laden
2. An der betreffenden Stelle mit VirtualProtect und WriteProcessMemory in $CC platzieren
3. Auf das Debug-Ereignis warten
4. Den alten Code an der Stelle wiederherstellen
5. Das Programm weiterlaufen lassen

(wenn das das ist was du meintest)
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat