Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Suche Unit: "IsDebuggerPresent" (https://www.delphipraxis.net/76387-suche-unit-isdebuggerpresent.html)

gugelhupf 11. Jan 2007 16:01

Re: Suche Unit: "IsDebuggerPresent"
 
Zitat:

Zitat von Balu der Bär
Unter Delphi 2006 lässt sich das fehlerfrei kompilieren.

Suuuper! :)

Ich nutze leider D5, wie geht's dort? :shock:

OldGrumpy 11. Jan 2007 16:10

Re: Suche Unit: "IsDebuggerPresent"
 
Zitat:

Zitat von gugelhupf
Zitat:

Zitat von Balu der Bär
Unter Delphi 2006 lässt sich das fehlerfrei kompilieren.

Suuuper! :)

Ich nutze leider D5, wie geht's dort? :shock:

x86 Opcode-Referenz (mal bei Intel danach schauen zum Beispiel) suchen, lesen, verstehen, entsprechenden Opcode selber zusammenbauen und mittels emit einfach als Bytes einkompilieren. GANZ WICHTIG: Dranschreiben was sich hinter den emit-Bytes verbirgt, sonst verbringt man später viel Zeit damit, das wieder auszuknobeln.

Achja, und selbstverständlich ist es gar kein Problem, alle diese Checks zu umgehen. Aber das wird ja gerne ignoriert ;)

brechi 11. Jan 2007 16:12

Re: Suche Unit: "IsDebuggerPresent"
 
Delphi-Quellcode:
function IsDebuggerPresent: boolean; stdcall;
asm
  MOV    EAX, DWORD PTR FS:[$30]
  TEST   EAX, EAX
  JS     @@W9X
@@WNT:
  MOV    ECX, FS:[$18]
  MOV    ECX, DWORD PTR [ECX+$30]
  XOR    EAX, EAX
  MOV    AL, BYTE PTR [ECX+2]
  RET
@@W9X:
  MOV    EAX, DWORD PTR [$BFFC9CE4]
  MOV    ECX, DWORD PTR [EAX]
  CMP    DWORD PTR DWORD PTR [ECX+$54], 1
  SBB    EAX, EAX
  INC    EAX
  RET
end;
Trodtzem solltest besser die Funktion aus meinen units benutzen die weiter oben gepostet wurden, weil eine statische Adresse ist nicht so das dolle.

Olli 11. Jan 2007 17:58

Re: Suche Unit: "IsDebuggerPresent"
 
Grummel: "[Zitat Olliver] Leuchtturm [Ziatatende]" ... Name falsch, Rechtschreibung grausam. Setzen, Sechs! :mrgreen:

Zitat:

Zitat von brechi
isDebuggerPresentX
in der uallKernel @ http://uall.overclock.ch/uallCollection
Da Luckies Funktion nur für winNT ist.

Dir ist schon aufgefallen, dass Win9x ausstirbt? Ich wuerde sagen es ist weitgehend ausgestorben, weshalb ich bspw. auch keine Hemmungen habe meine Programme komplett fuer Unicode zu kompilieren.

Zitat:

Zitat von brechi
Trodtzem solltest besser die Funktion aus meinen units benutzen die weiter oben gepostet wurden, weil eine statische Adresse ist nicht so das dolle.

Jupp, dem moechte ich zustimmen. Obwohl es als (C-Praeprozessor/)Macro weit besser zu implementieren ist, weil es "dynamischer" ist :mrgreen: ... auch wenn ich ja Inline-Funktionen normalerweise Makros vorziehe. Leider geht beides in Delphi nicht so richtig ...

BTW: Hast du inzwischen den Sinn der Exception(s) begriffen? Siehe hier.

gugelhupf 12. Jan 2007 18:23

Re: Suche Unit: "IsDebuggerPresent"
 
Zitat:

Zitat von brechi
Delphi-Quellcode:
function IsDebuggerPresent: boolean; stdcall;
asm
  MOV    EAX, DWORD PTR FS:[$30]
  TEST   EAX, EAX
  JS     @@W9X
@@WNT:
  MOV    ECX, FS:[$18]
  MOV    ECX, DWORD PTR [ECX+$30]
  XOR    EAX, EAX
  MOV    AL, BYTE PTR [ECX+2]
  RET
@@W9X:
  MOV    EAX, DWORD PTR [$BFFC9CE4]
  MOV    ECX, DWORD PTR [EAX]
  CMP    DWORD PTR DWORD PTR [ECX+$54], 1
  SBB    EAX, EAX
  INC    EAX
  RET
end;
Trodtzem solltest besser die Funktion aus meinen units benutzen die weiter oben gepostet wurden, weil eine statische Adresse ist nicht so das dolle.

Dat klappt bei mir leider auch net... :gruebel:

gugelhupf 13. Jan 2007 21:10

Re: Suche Unit: "IsDebuggerPresent"
 
*push*

brechi 13. Jan 2007 21:12

Re: Suche Unit: "IsDebuggerPresent"
 
wenn du den Fehler nicht postest kann man dir auch nicht helfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz