Detectando SoftICE llamando 68h INTERNO

  

Aquí está una manera de detectar la presencia de SoftICE en memoria llamando INTERNO para contener el valor 43h antes de llamar INTERNO esté en el registro del HACHA. 68h. AH el registro debe 68h. Si SoftICE es activo en memoria, el valor de vuelta 0F386h

Éste es un método bien conocido de detectar SoftICE que sea seguro y utilizado comúnmente, pero solamente en Windows 9x. Usted puede verlo en la acción, por ejemplo, en SafeDisc:

386 
MODEL PLANO, locals del stdcall 
saltos 
UNICODE=0 
incluya w32.inc 
Extrn SetUnhandledExceptionFilter: Detección
del DB anterior del coda del delayESP del data message3 message2 
de PROC "llamando el 68h" INTERNO, 0 DB "found" de SoftICE, found"de 
SoftICE de 0 DB" no, 0 DD 0
el registro del;the ahorra ESPECIALMENTE aquí el 
registro del;the de la DD 0 ahorrará ESPECIALMENTE la dirección del 
servicio;previous de SEH aquí 
Comienzo: 
; ;Sets SEH en caso de que de un error 
;
movimientos [ delayESP], especialmente
 
empuje el error compensado 
llame SetUnhandledExceptionFilter 
movimientos [ anteriores ], eax
 
;
 
la nueva dirección del;The para la dirección de 
excepción estructurada (SEH) se fija aquí para asegurarse de que en 
caso de que de un;error, el programa continuará de una etiqueta del 
error y terminará correctamente. Éste es;if importante, por 
ejemplo, las llamadas del programa una interrupción que sean 
realizadas correctamente solamente si los;is de SoftICE activos, pero 
que causará un error y estrellan el programa si SoftICE no es activo.
Finalmente, se ahorra la dirección anterior del servicio 
del;the SEH. 
; ah,;calls internos del número del;service del eax
del empuje 43h 68h los;saves INTERNOS de la interrupción 68h el valor
de vuelta
 
; servicio anterior de los;Sets SEH; 
empuje la PTR del dword [ anterior ] 
llame SetUnhandledExceptionFilter 
; ;Sets la dirección original del servicio 
de SEH 
;
haga estallar los;restores del eax el hacha de vuelta del 
CMP del valor,;tests 0f386h para ver si es el valor de vuelta
 
;a "número mágico" 
; el;If SoftICE es activo en memoria, el 
valor de vuelta será F386h en el registro del HACHA;
el;if del salto del jz sí, el programa salta porque es 
SoftICE
 
;active en memoria 
continúe: 
llame MessageBoxA, 0, message2 compensado, \ message1,0 
compensado 
el;if el valor de vuelta estaba con excepción de 
F386h,;SoftICE no fue encontrado, y se exhiba un;will del mensaje de 
error. 
llamada ExitProcess, -1;ends el programa
 
salto: 
llame MessageBoxA, 0, message3 compensado, \ message1,0 
compensado 
;prints un mensaje que SoftICE fue encontrado. 
Cualquier;code puede seguir de este punto. 
llamada ExitProcess, -1 
;ends el error del programa: ;starts un 
nuevo servicio de SEH en caso de que de un movimiento del error 
especialmente, [ delayESP ]
 
la compensación del empuje continúa la vuelta 
el;if un error ocurre en el programa,;ensures de 
SEH que el programa continuará de la etiqueta del;error. 
extremos 
comienzo del final 
;end del programa 
esto es un artículo agregado por Sam Petrone


Negación: Nuestro Web site no es responsable de la información contenida por este artículo. Este artículo de ninguna manera refleja las vistas, las opiniones, los pensamientos o la creencia del personal del directorio de los artículos.

Aviso de la traducción: El artículo "que detectaba SoftICE llamando 68h INTERNO" fue traducido usando un servicio de traducción automatizado. Nos disculpamos sinceramente por cualquier error de la traducción que ocurriera. Gracias por entender.

Online: 840 users browsing the articles directory