SoftICE durch das Benennen INTERNEN 3h ermitteln
Dieses ist einer der weithin bekanntesten Anti-Ausprüfen Tricks, und es benutzt eine Hintertür in SoftICE selbst. Es funktioniert in allen Versionen von Windows, und es basiert auf dem Benennen INTERNEN 3h mit den Registern, welche die folgenden Werte enthalten: EAX=04h und EBP=4243484Bh. Dieses ist wirklich die "BCHK" Zeichenkette. Wenn SoftICE im Gedächtnis aktiv ist, enthält das EAX Register einen Wert anders als 4. Dieser Trick ist häufig im Code der verschiedenen Kompression und der kodierenprogramme verwendet worden, und er ist wegen seines breiten Gebrauches weithin bekannt. Wenn es gut verwendet wird, kann er Mühe sogar für die erfahreneren Cracker verursachen. 386 MODEL FLACH, stdcall Einheimische springt UNICODE=0 schließen Sie w32.inc mit ein Extrn SetUnhandledExceptionFilter: PROC data message3 message2 delayESP vorhergehendes code DB "Abfragung durch das Benennen von von INTERNEM 3h", 0 DB "SoftICE found", 0 DB "SoftICE nicht found", 0 DD 0 ;the BESONDERS Register wird hier gespeichert. DD0;the BESONDERS Register speichert die Adresse von ;previous SEH Service hier. Anfang: ; -;Sets SEH falls von einer Störung ; Bewegungen [ delayESP ], besonders drücken Sie Offsetstörung benennen Sie SetUnhandledExceptionFilter Bewegungen [ vorhergehend ], eax ; ;The neue Adresse für die strukturierte Ausnahme-Behandlung (SEH) wird hier eingestellt, um die sicherzugehen falls von ;error, das Programm fährt von einem Störung Aufkleber fort und beendet richtig. Dieses ist wichtig ;if z.B. das Programm benennt eine Unterbrechung, die richtig nur wenn SoftICE durchgeführt wird ;is aktiv, aber, die eine Störung verursachen und das Programm zerschmettern, wenn SoftICE nicht aktiv ist. ;Finally wird die vorhergehende SEH Service-Adresse gespeichert. ; eax, 4 Bewegungen ebp, "BCHK" internes Stoß 3h eax die;"magic" Werte, zum gefundenes;whether SoftICE zu sein ist aktiv ;calls die INTERNEN Unterbrechung 3h;saves der Rückholwert ; ;Sets vorhergehender SEH Service ; drücken Sie dword PTR [ vorhergehend ] benennen Sie SetUnhandledExceptionFilter ; ;Sets die ursprüngliche SEH Service-Adresse ; knallen Sie eax cmp eax, der 4 jnz Sprung fortfahren: ;restores der Rückholwert die;tests, zum zu sehen, ob eax geändertes;if war, das es geändert wurde, SoftICE ist aktives;in Gedächtnis benennen Sie MessageBoxA, 0, Offsetmessage2, \ Offsetmessage1,0 ; ;If, das der Rückholwert 4 SoftICE ist, wurde nicht gefunden und das Programm druckt eine Fehlermeldung aus. ; Anruf ExitProcess, -1 ;ends Programm Sprung: benennen Sie MessageBoxA, 0, Offsetmessage3, \ Offsetmessage1,0 ; ;Displays eine Anzeige, daß SoftICE gefunden wurde; irgendein Code kann diesem Punkt folgen. ; Anruf ExitProcess, -1 ;ends Programm Störung: ;starts ein neuer SEH Service falls von einer Störung Bewegung besonders, [ delayESP ] Stoßversatz setzt Rückkehr fort ; ;If, das eine Störung im Programm, SEH auftritt, stellt sicher, daß das Programm vom;error Aufkleber fortfährt. ;enden Ende Anfang ;end des Programms dieses ist ein Artikel, der von Sam Petrone
hinzugefügt wird
|
|||
|