Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Luckies "myIsDebuggerPresent" liefert immer true

  Alt 6. Apr 2010, 11:35
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
  Mit Zitat antworten Zitat