Hallo cookie22,
generell gilt: 1 Frage pro Thread.
Zu deiner Anti-Debug-
Unit: Es ist sehr schwer, wirklich ein Programm vor Debuggen zu schützen. Du kannst aber damit herausfinden, ob das Programm debuggt wird. (Achtung: Dies ist verhinderbar!)
Delphi-Quellcode:
asm
push eax;
push ebx;
mov eax, fs:[$18];
mov ebx, [eax+$30];
mov eax, [ebx+2];
mov [BeingDebugged], al;
pop ebx;
pop eax;
// Wichtig! POP immer in umgekehrter Reihenfolge von PUSH
end;
Danach steht in BeingDebugged(: boolead) drin, ob das Programm debuggt wird.
Bernhard
PS: EDIT: Self-Check mit CRC o.ä. würde mich auch interessieren.