SoftICE durch das Benennen INTERNEN 3h ermitteln


  Share  
|


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


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions