SoftICE durch das Benennen INTERNEN 68h ermitteln
Ist hier eine Weise, das Vorhandensein von SoftICE im Gedächtnis, indem sie zu ermitteln INTERN des, Wertes 43h, bevor sie zu enthalten INTERN benennt, ist im AXT-Register benennt. 68h. Das AH Register muß 68h. Wenn SoftICE im Gedächtnis aktiv ist, wird der Rückholwert 0F386h Dieses ist eine weithin bekannte Methode des Ermittelns von von SoftICE, das sicher und allgemein verwendet ist, aber nur in Windows 9x. Sie können es in der Tätigkeit z.B. in SafeDisc sehen: 386 MODEL FLACH, stdcall Einheimische Sprünge 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 68h", 0 DB "SoftICE found", 0 DB "SoftICE nicht found", 0 DD 0 ;the BESONDERS Register speichert hier DD0;the BESONDERS Register speichert die Adresse des;previous SEH Services 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 sicherzugehen, daß falls von einem;error, das Programm von einem Störung Aufkleber fortfährt und richtig beendet. Dieses ist wichtiges;if z.B. die Programmanrufe eine Unterbrechung, die richtig nur wenn die aktiven SoftICE;is durchgeführt werden, aber die eine Störung verursacht und das Programm zerschmettert, wenn SoftICE nicht aktiv ist. Schließlich;the wird vorhergehende SEH Service-Adresse gespeichert. ; ah, Stoß 43h interne 68h eax;service Zahl;calls die INTERNEN Unterbrechung 68h;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;restores die Rückholwert cmp Axt,;tests 0f386h, um zu sehen, ob der Rückholwert ist ;a "magische Zahl" ; ;If SoftICE ist im Gedächtnis, der Rückholwert ist F386h im AXT-Register aktiv; jz Sprung;if ja, das Programm springt, weil SoftICE ist ;active im Gedächtnis fahren Sie fort: benennen Sie MessageBoxA, 0, Offsetmessage2, \ Offsetmessage1,0 ;if der Rückholwert war anders als F386h, wurde;SoftICE nicht gefunden, und ein Fehlermeldung;will wird angezeigt. Anruf ExitProcess, -1;ends das Programm Sprung: benennen Sie MessageBoxA, 0, Offsetmessage3, \ Offsetmessage1,0 ;prints eine Anzeige, daß SoftICE gefunden wurde. Irgendein;code kann von diesem Punkt folgen. Anruf ExitProcess, -1 ;ends die Programmstörung: ;starts ein neuer SEH Service falls von einer Störung Bewegung besonders, [ delayESP ] Stoßversatz setzt Rückkehr fort ;if eine Störung tritt im Programm, SEH;ensures auf, 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
|
|||
|