Red de conocimiento informático - Espacio del host - Cuando encendí la computadora dos horas más tarde, la hora en la computadora cambió al 1 de enero de 2003.

Cuando encendí la computadora dos horas más tarde, la hora en la computadora cambió al 1 de enero de 2003.

Personalmente sospecho que gané la oferta. Recientemente apareció un virus.

Leí esta publicación del mundo de los cibercafés

El virus TPVO/3783 es ​​un virus oculto y altamente contagioso. El virus es único porque puede infectar archivos WINDOWS de modo que el virus pueda ejecutarse en WINDOWS y resida en la memoria.

El virus infectará discos duros, áreas de arranque de disquetes y programas ejecutables de WINDOWS y DOS, incluidos .EXE.COM.OVL.386, etc. No infecta archivos sobrescribiéndolos, la longitud del programa infectado aumentará en 3783 bytes y la fecha del archivo aumentará en 100 años como marca de infección.

Una vez que el virus reside en la memoria, no puede ver el cambio en la longitud del archivo usando el comando DIR. El registro de inicio del disco leído con INT 13H es normal, no es un registro de inicio cargado de virus. leerlo Los archivos envenenados son normales, pero los archivos leídos con los programas ARJ, PKZIP, RAR, LHA, BACKUP, MSBACKUP y TELIX son venenosos. Sin embargo, los archivos leídos por los siete programas ARJ, PKZIP, RAR, LHA, BACKUP, MSBACKUP y TELIX son venenosos, por lo que los archivos comprimidos en paquetes de archivos por estos programas de compresión o transferidos a otros lugares por TELIX a través del módem son venenosos. , lo que demuestra que el virus es muy cauteloso a la hora de ocultarse y propagarse.

Al infectar el sector de arranque principal del disco duro, el virus se oculta en los 5 sectores de la columna 0 y encabezado 0; al infectar el sector de arranque del disquete, el virus se oculta en el 81; sector recién formateado Al infectar un archivo, el virus se oculta al final del archivo, pero el virus no está cifrado. Cuando se ejecuta un sistema WINDOWS infectado por virus, los atributos del archivo de memoria virtual 386SPART.PAR en el directorio raíz cambiarán a atributos normales y se pueden enumerar usando el comando DIR.

Análisis de virus:

1. Los virus de residencia de memoria e interceptación de interrupciones utilizan el método de modificar el bloque de control de memoria para residir en la memoria. Si existe UMB, el virus residirá en UMB. , después de que el virus reside en la memoria, intercepta las interrupciones INT 21H e INT 13H para completar la infección de archivos y sectores de arranque. Al interceptar INT 21H, el virus utiliza un método inusual. Al interceptar INT 21H, el virus adopta un enfoque inusual. A continuación se muestra un fragmento del interior de INT 21H. Una vez inicializado el programa de interrupción, coloque el número de función en AH en BX y multiplíquelo por 2. Luego obtenga la dirección de la subrutina correspondiente consultando la tabla y luego ejecute la subrutina correspondiente mediante una llamada aproximada. FDC8:4198 8ADC MOV BL,AH; AH es el número de subfunción FDC8:419A D1E3 SHL BX,1; Ponga BX y multiplíquelo por 2. 41EA 2E8B9F9E3E MOV BX,CS:[BX+3E9E]; 3E9E es la dirección base de cada tabla de direcciones de función FDC8:41EF 36871EEA05 XCHG BX,SS: [05EA]; llame a la dirección en 05EA FDC8:41F4 368E1EEC05 MOV DS,SS: [ 05EC] FDC8:41F4 368E1EEC05 MOV DS,SS:[ 05EC] FDC8:41F4 368E1EEC05 MOV DS,SS:[ 05EC41F4 368E1EEC05 MOV DS,SS:[ 05EC 05EC] FDC8:41F9 36FF16EA05 CALL SS:[05EA ]; llamar al correspondiente subrutina de función

.

...

Cuando el virus es residente, primero intercepta INT 2AH. Cuando se detecta que la pila utilizada en INT 2AH es el segmento de pila MSDOS.SYS, significa que la interrupción es emitida por INT. 21H, y luego regresa de la interrupción. Obtenga la dirección del segmento del programa MSDOS.SYS de la dirección, luego busque las instrucciones anteriores y cambie CALL SS:[05EA] a CALL XXXX. Luego busque las instrucciones anteriores, cambie CALL SS:[05EA] a CALL XXXX:[053D], apunte al código del virus, complete las funciones de modificación e infección y luego pase al código de ejecución INT 21H original. Dado que este fragmento de código tiene aproximadamente cien oraciones después de INT 21H, este fragmento de código se mueve al HMA cuando comienza con el parámetro DOS = HIGH. Por lo tanto, el método de interceptación del virus es muy engañoso y no solo engaña a casi todos los programas de monitoreo de memoria. Incluso si se utiliza el desmontaje manual del programa de interrupción INT 21H, es posible que no se puedan encontrar excepciones.

Al interceptar INT 13H, el virus primero utiliza la función 1300H de la interrupción INT 2FH no revelada para obtener la dirección original de INT 13H utilizada por el controlador del dispositivo interno de DOS, y luego busca aleatoriamente un número de interrupción mayor. que E0H en el código BIOS No. INT XX, y apunta este vector de interrupción a la rutina de servicio INT 13H del virus. De esta manera, la dirección original de INT 13H guardada por DOS se cambiará para que apunte a la instrucción INT XX en el BIOS, de modo que los números del vector de interrupción que apuntan al programa de virus en diferentes computadoras serán diferentes.

2. Infección y otros

El virus intercepta INT 13H para infectar el sector de arranque del disco. Al realizar funciones normales de lectura y escritura, el virus no es contagioso, por lo que la velocidad de lectura y escritura del disco no se reducirá significativamente. El virus solo es contagioso al leer y escribir en el sector de arranque del disco. Al infectar el sector de arranque maestro del disco duro, el virus se oculta en los 8 sectores comenzando desde el sector 5 de la pista reservada 0, columna 0, encabezado, y el registro de arranque original se almacena en el sector 13 de la columna 0, encabezado 0. Un disquete típico tiene sólo 80 sectores. Cuando el virus infecta el registro de arranque del disquete, primero formatea el sector 81 y luego se oculta en 8 sectores comenzando desde el primer sector del sector 81. El registro de arranque original se guarda en el sector 81 del noveno sector. del sector. Cuando el programa lee el registro de inicio, el virus lee el registro de inicio original y lo devuelve.

El virus intercepta INT 21H para completar la infección del archivo ejecutable y algunas funciones de engaño. En la función de búsqueda de archivos coincidentes INT 21H 11H, 12H, 4EH, 4FH, el virus devolverá la longitud y la hora correctas del archivo en la función de lectura/escritura del archivo 57H, el virus devolverá la hora correcta del archivo en la lectura 3FH; función de archivo, si se lee la parte modificada del archivo, el virus devolverá la hora correcta del archivo. En la función de lectura de archivos 3FH, si se lee la parte modificada del archivo, el virus devolverá el contenido correcto; en la función de escritura de archivos 40H, si se escribe un archivo infectado, el virus restaurará el archivo y lo cerrará más tarde; reinfección.

Al ejecutar INT 21H 3DH para abrir un archivo, 3EH para cerrar un archivo, función de atributo de archivo 43H, cambio de nombre de archivo 56H y 4BH para ejecutar un archivo, el virus infectará el archivo y luego el virus se adjuntará al archivo. Al final, el punto de inicio del archivo apunta al punto de entrada del virus. Para archivos COM, el virus cambiará la primera instrucción del archivo a JMP XXXX para saltar a la entrada del virus. Para archivos .EXE normales, el virus señalará el puntero de entrada del archivo a la entrada del virus y señalará el punto final del archivo. pila 200H.

Los cambios realizados por el virus en el archivo ejecutable de WINDOWS se analizarán en detalle a continuación. Dado que hay muy poca información sobre el archivo ejecutable de WINDOWS, aquí hay una breve introducción a la estructura del archivo de WINDOWS: Los archivos WINDOWS son ejecutados por la parte DOS y la parte WINDOWS. La parte simplemente imprime el mensaje de aviso para salir, la parte WINDOWS cubre la parte DOS y la parte WINDOWS sale.

La parte de DOS solo necesita imprimir el mensaje de aviso y salir, mientras que la parte de WINDOWS se encuentra detrás del archivo en forma de sobrescritura. El encabezado del archivo EXE se divide en dos partes. La primera parte es el encabezado del archivo .EXE normal y la segunda parte es el encabezado del archivo ejecutable del nuevo formato "NE". Las partes relevantes se describen a continuación:

Encabezado de archivo .EXE ordinario 18H El peso de fuente es 1.0 y la segunda parte es el encabezado del archivo ejecutable de nuevo formato "NE". Encabezado del archivo EXE Desplazamiento de la tabla de reasignación de palabras 18H (el archivo WINDOWS debe ser mayor que 0040H) Desplazamiento del programa "NE" de palabra doble 3CH en el encabezado "NE" del archivo ejecutable Símbolo "NE" de palabra doble 00H en el encabezado del archivo ejecutable (40H bytes de largo) 14H palabra de entrada de programa IP 16H número de palabras de registros de dirección de segmento en el segmento de entrada de programa 18H inicial de programa de palabra doble SS: SP 1H Número de registros en la tabla de direcciones de campo 22H Desplazamiento de la tabla de direcciones de campo en el programa 32H bytes Unidad de conteo de segmento tamaño (valor de desplazamiento)

Todos los segmentos del programa se describen mediante un registro en la tabla de direcciones de segmentos. Todos los segmentos del programa en el programa se describen mediante un registro en la tabla de direcciones del segmento, incluido el desplazamiento del segmento del programa en el programa, el tamaño del segmento del programa, los atributos del segmento del programa y el tamaño de la memoria que se asignará cuando cargando el segmento del programa. Al ejecutar el programa, el sistema verificará la tabla de direcciones del segmento de acuerdo con el número de registro del segmento de entrada, averiguará la ubicación y el tamaño del segmento medio del programa, cargará el código en la memoria y luego comenzará la ejecución desde el IP de entrada. Cada registro en la tabla de direcciones de segmento ocupa 8 bytes y el formato es el siguiente:

00H El desplazamiento del campo en el programa (multiplicado por la unidad de conteo) 02H La longitud del campo (unidad: bytes) 04H Atributos de campo 06H Capacidad de campo a asignar (unidad: bytes)

El virus agregará un registro de la tabla de direcciones del segmento para describir los atributos del segmento del código del virus. Este registro generalmente se encuentra después del segmento. tabla de direcciones en el archivo WINDOWS. En los archivos WINDOWS, la tabla de direcciones del segmento generalmente se almacena inmediatamente después del encabezado "NE", y la tabla de direcciones del segmento también sigue a otros datos. No hay bytes adicionales en el medio, por lo que el virus almacenará el encabezado "NE" completo y. tabla de direcciones de segmento. Avance 8 bytes, luego escriba un nuevo registro de la tabla de direcciones de segmento en los 8 bytes desocupados y luego apunte el número de registro de segmento de la entrada del programa al nuevo registro. Los cambios específicos están en los datos: "NE en. 003CH El desplazamiento del encabezado "NE" en el desplazamiento del encabezado 003CH se reduce en 8, el número de registro del segmento de entrada de 16H en el encabezado "NE" se cambia al segmento de virus, el número de registros de la tabla de direcciones del segmento en 1CH aumenta en 1, 04H, 24H, 26H Otras compensaciones de tablas relacionadas en , 28H y 2AH se incrementan en 8.

2. Código fuente del virus:

Haga clic aquí para descargar

Puntos clave del antivirus:

1. p>

p>

Para detectar virus en la memoria, puede utilizar el método de detección que viene con el virus. Suponga que AX = 187FH, BX = 4453H y llame a INT 21H. Si se devuelve BX = 87A1H. significa que ya hay 3783 virus en la memoria Dado que hay muchos virus Medios engañosos, para detectar virus en el área de inicio o en los archivos, primero debe reiniciar con un disco del sistema limpio.

2. Detecte y elimine virus en el sector de arranque

Utilice una herramienta de edición de disco para observar el sector de arranque si encuentra que el contenido del desplazamiento 003EH es FA 33 DB 8E D3. BC 00 7C 8E C4 significa que ya hay un virus en el área de inicio. Para disquetes, puede usar CX=5009H, DX=0000H, INT 13H para leer el registro de inicio original y luego escribir en el área de inicio para eliminar el virus. También puede usar FDISK /MBR para simplemente eliminar el virus 3783. el área de arranque del disco duro.

3. Detectar y eliminar virus en archivos ejecutables

3783 El virus guardará el encabezado del archivo original en el archivo y su ubicación es el desplazamiento 0E87H desde el inicio del archivo. virus contando desde 40H bytes. El código del virus 3783 no está cifrado, por lo que detectarlo y eliminarlo es relativamente sencillo.

Archivo EXE

1F POP DS

E80000 CALL ZZZZ

XXXX:ZZZZ 5E POP SI

83EE05 SUB SI,+05

56 PUSH SI

06 PUSH ES

B87F18 MOV AX,187F

BB5344 MOV BX,4453

CD21 INT 21 (DOS)

81FBA187 CMP BX,87A1

Esto confirma que el archivo está infectado con el virus 3783. Después de la infección, puede utilizar el siguiente método para desinfectar manualmente: primero escriba la ubicación donde se encuentra la cadena y luego agregue 0E87H a esta ubicación (la dirección YYYYY en DEBUG más 0E87H) es para guardar los 40H bytes del original. encabezado del archivo allí, escriba estos 40H bytes nuevamente en el encabezado del archivo y luego corte el archivo del lugar donde se encuentra la cadena, es decir, se completa la desinfección.

Para los archivos WINDOWS, dado que los virus modifican mucho los archivos y las estructuras de datos son complejas, la desinfección manual generalmente no es necesaria. Si no existe un programa de desinfección, se recomienda el siguiente método: Busque un software de compresión como. como ARJ, LHA, RAR, etc., cambie el nombre del archivo a otro nombre de archivo como A.EXE, luego ejecute un archivo con un virus para que el virus resida en la memoria y luego empaquete el archivo para desinfectarlo. Luego ejecute un archivo con un virus para que el virus resida en la memoria y luego empaquete el archivo para desinfectarlo. Dado que el virus realiza una función engañosa, los archivos leídos e insertados en el paquete de archivos por el software de compresión no son tóxicos. Después de iniciar el sistema con un disco de sistema limpio, los archivos descomprimidos tampoco son tóxicos. Si hay suficiente espacio en disco, también puede utilizar este método de compresión completa del disco y luego descompresión completa del disco para eliminar todos los virus. Los pasos de programación y algoritmos para la desinfección automática son los siguientes:

(1) Determine si el encabezado del archivo 0018H es mayor o igual a 40H y luego continúe (indicando que hay un encabezado "NE")

(2) Del archivo Obtenga el desplazamiento del encabezado 003CH, lea 40H bytes, determine los primeros 2 bytes como "NE" y continúe.

(3) Obtenga datos relevantes del " NE" encabezado y calcule la dirección del segmento de entrada La posición inicial del registro de la tabla (es decir, la longitud del archivo original) = [registro de la tabla de direcciones del segmento 00H] * ( 1 SHL [encabezado "NE" 32H] )

(7) Restaure el número de serie del registro de la tabla de direcciones del segmento de entrada original. : Virus en 0E83H => encabezado "NE" 16H

Restaurar la IP de la entrada original: Virus en 0E85H => encabezado "NE" 14H

Restaurar el número de registro de la tabla de direcciones del segmento original: "NE " encabezado 1CH menos 1

(8) Vuelva a escribir el encabezado "NE" restaurado y trunque el archivo desde el comienzo del virus

En este punto, se completa el trabajo de desinfección. Durante el proceso de desinfección, se omite el paso de mover el encabezado del archivo ejecutable "NE" y la tabla de direcciones de segmento 8 bytes. Esto no afecta la ejecución del archivo. Si el archivo debe restaurarse por completo, se agregan las siguientes partes. :

(9) Reducir las palabras en 04H, 24H, 26H, 28H y 2AH en el encabezado "NE" en 8, y reducir las palabras dobles en 3CH en el encabezado en 8

( 10) Reducir 8 palabras desde el principio del encabezado "NE" hasta el final de la tabla de direcciones del segmento

(11) Reducir 8 palabras desde el principio hasta el final de la tabla de direcciones del segmento

Desinfección Eso es todo. (10) Mueva los datos 8 bytes desde el principio del encabezado "NE" hasta el final de la tabla de direcciones del segmento

Vuelva a escribir los nuevos datos en 3CH del encabezado

4 . Inmunidad ejecutable de los archivos

La marca de infección del virus es el tiempo del archivo más 100 años. Si el virus detecta que el archivo tiene una antigüedad superior a 2080, considerará que el archivo ha sido infectado, por lo que usted. Puede utilizar un programa de utilidad para modificar la duración del archivo, más 100 años, para completar la inmunidad del documento.

Por lo tanto, puede utilizar un programa de utilidad para modificar la duración del archivo y aumentarla en 100 años para completar la inmunidad del archivo.