Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#8

AW: Assembler - Register dynamisch bestimmen.

  Alt 17. Apr 2020, 03:20
Und wer Cracker die Debugger nutzten ärgern wollte baute viele Int3 Aufrufe ein. Soweit ich weiß
fungierte Int3 nämlich als Breakpoint...
Ist immernoch so und ist einer der wenigen Interupts, die man im Usermode jetzt noch benutzen kann, neben der passenden Winapi MSDN-Library durchsuchenDebugBreak, welches intern auch gleich noch mit Bei Google suchenIsDebuggerPresent prüft.
z.B. als Inline-Assembler asm int 3 end; mittten im Delphi-Code (Win32). In Win64 so nicht mehr, da es dort kein Inline-Assembler gibt. (nur noch komplette Methoden)
Nur wenn kein Debugger dran hängt, dann raucht das natürlich mit einer Exception ab.

Und das MSDN-Library durchsuchenFlushInstructionCache ist für modernere CPUs, welche den Befehlscode cachen, bzw. sich die nächsten Befehle schonmal vorab kopieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat