Hallo,
ich möchte mich ein bissl mit AntiCracking beschäftigen. Habe jetzt Luckies "AntiCracking"-Artikel gelesen und - weil ich keine Ahnung von
ASM habe - voerst einfach per Copy&Paste ins Projekt eingefügt. Beim Programmstart lasse ich mir das Ergebnis anzeigen und erhalte aber immer true - auch außerhalb von der
IDE. Was mache ich falsch?
Delphi-Quellcode:
function MyIsDebuggerPresent: Boolean;
assembler;
var
BeingDebugged: Boolean;
begin
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;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
...
begin
...
if (myIsDebuggerPresent)
then
ShowMessage('
Ja');
...
end;
Ich habe sogar Delphi geschlossen und ich bekomme trotzdem "ja" angezeigt. Vielleicht könnt ihr mir helfen!
Danke im Voraus