Hallo K-H,
Zitat von
p80286:
Hallo Steffen,
hast Du Brechis Beitrag übersehen?
Zitat:
Code:
function IsDebuggerPresent: boolean; stdcall;
asm
MOV EAX, DWORD PTR FS:[$30]
TEST EAX, EAX
JS @@W9X
@@WNT:
MOV EAX, FS:[$18]
MOV EAX, [EAX+$30]
MOVZX EAX, [EAX+2]
RET
@@W9X:
MOV EAX, [$BFFC9CE4]
MOV ECX, [EAX]
CMP DWORD PTR [ECX+$54], 1
SBB EAX, EAX
INC EAX
RET
end;
Gruß
K-H
Nein, den hab ich nicht übersehen, allerdings ist das ja eine Funktion und wenn ich Michaels Beitrag richtig verstanden habe, dann kann man Funktionsaufrufe als Cracker gut identifizieren.
Deshalb wird ja im Beispiel weiter oben nur die Variable BeingDebugged gefüllt, um eben einen Funktionsaufruf zu umgehen.
Nur weiss ich leider nicht so richtig, wie ich den
ASM umschreiben muss, dass im
Win9x-Abschnitt eine Variable gefüllt wird.
Gruß
Steffen