Rilevando SoftICE denominando 68h INTERNO

  

Qui è un senso rilevare la presenza di SoftICE nella memoria denominando INTERNO per contenere il valore 43h prima della chiamata INTERNO è nel registro dell'ASCIA. 68h. AH il registro deve 68h. Se SoftICE è attivo nella memoria, il valore di ritorno 0F386h

Ciò è un metodo ben noto di rilevazione del SoftICE che è sicuro ed usato comunemente, ma soltanto in Windows 9x. Potete vederli nell'azione, per esempio, in SafeDisc:

386 
MODEL PIANO, locals dello stdcall 
salti 
UNICODE=0 
includa w32.inc 
Extrn SetUnhandledExceptionFilter: 
Rilevazione di db precedente del code del delayESP del data 
message3 message2 di PROC "denominando 68h" INTERNO, 0 db "found" di 
SoftICE, found"di SoftICE di 0 db" non, 0 dd 0
il registro del;the SPECIALMENTE conserva qui il 
registro del;the di dd 0 SPECIALMENTE conserverà l'indirizzo del 
servizio;previous di SEH qui 
Inizio: 
; ;Sets SEH nel caso di un errore 
;
movimenti [ delayESP], specialmente
 
spinga l'errore di derivazione 
denomini SetUnhandledExceptionFilter 
movimenti [ precedenti ], eax
 
;
 
il nuovo indirizzo del;The per il trattamento di eccezioni
strutturato (SEH) è regolato qui per accertarsi che nel caso di 
un;error, il programma continui da un'etichetta di errore e si 
concluda correttamente. Ciò è;if importante, per esempio, le 
chiamate di programma un'interruzione che sarà effettuata 
correttamente soltanto se;is di SoftICE attivi, ma che causerà un 
errore ed arrestano il programma se SoftICE non è attivo. Per 
concludere, l'indirizzo precedente di servizio del;the SEH è 
conservato. 
; ah,;calls interni di numero di;service del eax di 
spinta 43h 68h i;saves INTERNI di interruzione 68h il valore di 
ritorno
 
; servizio precedente dei;Sets SEH; 
spinga lo stampante di dword [ precedente ] 
denomini SetUnhandledExceptionFilter 
; ;Sets l'indirizzo originale di servizio di
SEH 
;
schiocchi i;restores del eax l'ascia di ritorno del CMP di
valore, i;tests 0f386h per vedere se il valore di ritorno è
 
;a "numero magico" 
; il;If SoftICE è attivo nella memoria, il 
valore di ritorno sarà F386h nel registro dell'ASCIA;
il;if di salto del jz sì, il programma salta perché 
SoftICE è
 
;active nella memoria 
continui: 
denomini MessageBoxA, 0, message2 di derivazione, \ 
message1,0 di derivazione 
il;if il valore di ritorno era tranne 
F386h,;SoftICE non è stato trovato e un;will del messaggio di errore 
è visualizzato. 
chiamata ExitProcess, -1;ends il programma
 
salto: 
denomini MessageBoxA, 0, message3 di derivazione, \ 
message1,0 di derivazione 
;prints un messaggio che SoftICE è stato trovato.
Qualsiasi;code può seguire da questo punto. 
chiamata ExitProcess, -1 
;ends l'errore di programma: ;starts un 
nuovo servizio di SEH nel caso di un movimento di errori specialmente,
[ delayESP ]
 
l'immagine riportata di spinta continua il 
ritorno 
il;if un errore si presenta nel programma,;ensures
di SEH che il programma continuerà dall'etichetta di;error. 
estremità 
inizio di conclusione 
;end del programma 
ciò è un articolo aggiunto da Sam Petrone


Diniego: Il nostro Web site non è responsabile delle informazioni contenute da questo articolo. Questo articolo in nessun modo riflette le viste, le opinioni, i pensieri o la credenza del personale dell'indice degli articoli.

Avviso di traduzione: L'articolo "che rileva SoftICE denominando 68h INTERNO" è stato tradotto usando un servizio di traduzione automatizzato. Chiediamo scusa francamente per tutti gli errori di traduzione che hanno accaduto. Grazie per capire.

Online: 847 users browsing the articles directory