(Agregado si está satisfecho) Métodos antivirus o tutoriales antivirus, útiles para aprender, muchas gracias
En primer lugar, comprendamos brevemente el principio de detección y eliminación de virus mediante software antivirus. Actualmente, el software antivirus utiliza principalmente métodos de código característico y métodos de monitoreo de comportamiento para detectar y eliminar virus. El primer método de comparación es antiguo y se divide en escaneo de archivos y escaneo de memoria. Después de que la compañía de software antivirus obtiene la muestra del virus, define una firma de virus en la base de datos de virus y luego la compara con el archivo escaneado. consistente, se considera que el primero es un virus, y el método de escaneo de la memoria es cargar la memoria y luego compararla. El segundo es relativamente nuevo. Utiliza el principio de que ciertos virus tendrán ciertos comportamientos para monitorear los virus.
Herramientas de uso común para evitar antivirus:
El depurador Ollydbg se conoce como OD, herramienta de seguimiento dinámico peid, herramienta de verificación de shell PEditor, herramienta de edición de encabezados de archivos PE
CCL, Bole, localizador de firmas MYCCL oc, reubicación del convertidor de direcciones, herramienta de modificación de direcciones de segmentos EP zeroadd, herramienta para agregar áreas, editor hexadecimal Uedit32
Método antivirus
1. antivirus
p>1. Agregar flores
2. Modificar el código de función del archivo
3. Embalaje
4. el archivo empaquetado
p>
2. Protección antivirus de memoria
Modificar código de función
3. Protección antivirus de comportamiento
Agregar flores
Agregar flores Es un método común para evitar que los archivos se eliminen. El principio de agregar flores es hacer que el software antivirus no pueda detectar la firma agregando instrucciones de flores (algunas). instrucciones basura, como sumar 1 y restar 1 y otras tonterías). Agregar flores se puede dividir en agregar flores al área y agregar flores a la cabeza. Generalmente, la herramienta para agregar flores usa un área de adición para agregar flores. Por supuesto, también se puede agregar manualmente, es decir, primero use zeroadd para agregar una sección, luego escriba las instrucciones de la flor en la nueva sección y luego salte a la original. entrada; agregue flores después de quitar el encabezado. Primero NOP (sin operación en ensamblaje) las líneas de entrada del programa, luego busque el área 0000 a continuación, escriba el código NOP y algunas instrucciones sofisticadas, y luego salte a la entrada original a través de JMP ( salto incondicional en la asamblea).
Después de agregar flores, algunos programas antivirus no podrán reconocerlo, pero es posible que algunos antivirus más potentes, como el tío del controlador (Kaspersky), aún puedan detectarlo. En este caso, es necesario ubicar el código de característica y modificarlo. Para modificarlo, primero debe saber dónde está el código de característica, por lo que primero debe ubicar el código de característica. Este es un punto difícil, especialmente el posicionamiento de. códigos de características compuestos.
Posicionamiento del código de característica
Hay dos métodos principales para el posicionamiento del código de característica: el primer método de sustitución directa; el segundo método de número binario
El método de sustitución directa; Uno de los primeros métodos de localización de códigos de características es reemplazar el código original uno por uno de acuerdo con una cierta cantidad de bytes y guardarlo. Por ejemplo, el tamaño total del troyano es de 100 bytes. Puede reemplazar de 0 a 10 bytes. 0 primero, guárdelo y luego use un software antivirus para escanear. Si no se detecta, significa que la firma se ha sobrescrito. Si aún se detecta, reemplace entre 10 y 20 bytes, luego guarde y escanee. hasta encontrar la firma. Las ventajas del método de sustitución son que es fácil de entender y rápido (para firmas de archivos). El método manual de las herramientas de posicionamiento de firmas Bole y CCL utiliza el principio del método de sustitución. Este método se utiliza a menudo para localizar firmas de archivos. Sin embargo, este método no es muy práctico para localizar firmas de memoria. Después de cada reemplazo, se debe cargar en la memoria y luego escanear. Si el troyano es grande, el reemplazo generará muchos archivos y se necesitará demasiado. Mucho tiempo para cargar cada uno en la memoria. Además, tiene una limitación muy grande, es decir, solo puede determinar la situación en la que solo hay una firma (también se aplican varias firmas en determinadas circunstancias. La tercera situación a continuación será la siguiente). tiene (narrativa), el software antivirus también tiene otros mecanismos para localizar firmas. Por ejemplo, algunos software antivirus definen dos firmas a y b (los principios de tres o más son los mismos. Para facilitar la explicación, dos firmas. se utilizan a continuación, por ejemplo), siempre que exista uno de a y b, el veneno se informará. Solo aumentando el rango de reemplazo hasta que ambos lugares se reemplacen al mismo tiempo no se informará ningún veneno. muy separados, el rango definido será muy aproximado. Es obvio que el método de sustitución directa ya no será apropiado, y aquí es donde entra en juego el segundo método.
El principio utilizado por el método de números binarios es el posicionamiento mitad y mitad, y el método automático de CCL utiliza este principio.
Divida la sección a detectar en dos, reemplace y genere dos archivos A y B respectivamente. A se genera después de que la segunda mitad del archivo original se reemplaza por 0 y B se genera después de que la primera mitad se reemplaza por 0. El antivirus. comienza a escanear y eliminar los archivos generados (si es la ubicación de la firma de la memoria, primero cargue la memoria y luego escanee la memoria.
(1) A existe y B se elimina: esto. La situación significa que la firma en el archivo A ha sido reemplazada, por lo que la parte reemplazada de A se divide en dos, el desplazamiento inicial es el desplazamiento de A y luego se detecta
(2). eliminado, B existe: esta situación indica que B La firma en el archivo ha sido reemplazada, por lo que la parte reemplazada de B se divide en dos, el desplazamiento inicial es el desplazamiento de B y luego se detecta
(3) A existe, B existe: Esta situación significa que es imposible localizar si hay firmas en A y B, por lo que A y B se dividen en dos para su detección.
(4) A es; eliminado, B eliminado: Esta situación muestra que hay firmas en ambas secciones, por lo que A y B se dividen en dos para su detección.
Cuando se subdivide A, la sección B original se completará con 0, lo que equivale a eliminar la influencia de la sección B, y solo se considera A. De manera similar, cuando se subdivide B, la sección A original. Se completará. Llenar el contenido con 0 equivale a eliminar la influencia de la sección A y considerar solo la sección B.
No. (1) (2) corresponde a la situación donde solo hay un código de característica, que es más fácil de entender;
No. a y b están definidos. La situación del código de firma es diferente de la mencionada anteriormente. Para evitar errores de juicio, el software antivirus define dos códigos de firma a y b. El virus se informará solo cuando ab exista. Al mismo tiempo, supongamos que a y b existen en A respectivamente. En B, a y b no existen al mismo tiempo y que el antivirus no alarma ni a A ni a B. ¿Cómo juzgar a continuación? Dé un ejemplo
El caballo de Troya era originalmente...a...b.... Después del primer reemplazo, A:...a...000000, B: 000000...b ..., ahora ab no existe al mismo tiempo, A, B Si ninguno de ellos muere, entonces A y B se dividen en dos nuevamente,...a...b000,...a... 000...,000...b...,...a000...b..., y puede encontrar los dos códigos de firma escaneando nuevamente. Si aún no funciona, continúe dividiendo. ... hasta que se encuentren todas; de hecho, este tipo de reemplazo directo de múltiples firmas también se puede ubicar, y el efecto es aún mejor Reemplace con una cierta cantidad de dígitos y luego escanee, siempre que se reemplace una característica. El código ya no informará de envenenamiento, por lo que los que no reportan envenenamiento están cubiertos por el código de característica. No importa cuántos lugares haya, se pueden ubicar y, al modificar, solo es necesario modificar un lugar.
La situación correspondiente (4) es que el antivirus define múltiples firmas, que es la situación mencionada anteriormente, siempre que una de ellas coincida, se considera un virus. Aún tomando los dos códigos de característica a y b como ejemplo, el resultado después del primer reemplazo es el mismo que (3). Las dos partes se consideran por separado y no se afectan entre sí. Es equivalente a descomponerse en dos códigos de característica únicos. Después del segundo reemplazo, se convierte en 000000…b000, 000000…000…, 000…000000,…a000000000, y así sucesivamente, hasta que todos los códigos de característica estén ubicados con precisión. Si hay N códigos de característica, es equivalente a descomponerlos en N. códigos de característica única para posicionamiento Ahora N es generalmente menor o igual a 3. En este caso, todos los códigos de característica ubicados deben modificarse para evitar la muerte.
El método de los números binarios es una muy buena idea y puede resolver la mayoría de problemas, pero ¿no es impecable? ¡La respuesta es no! El abominable software antivirus también tiene una carta de triunfo, que es la firma compuesta, lo que nos trae muchos problemas a la hora de localizar la firma. El mecanismo de posicionamiento de las firmas compuestas es definir primero N firmas y, siempre que algunas de ellas aparezcan al mismo tiempo, se consideran virus.
Pongamos un ejemplo sencillo: el troyano resultó ser...a1...b1...c1...a2...b2...c2... (a1 y a2 son iguales, los números son solo para facilitar la descripción más adelante). Siempre que abc aparezca al mismo tiempo, se considera un virus. ¿Qué debemos hacer? El principio no es muy difícil y también es un método para reemplazar y luego eliminar. Primero reemplace con 0 de atrás hacia adelante. Se supone que la precisión del reemplazo es un aumento de 1000 bytes por cada reemplazo. es un virus hasta que llega a la dirección 13140040 (como se describe en la descripción Cuando conviene decir una dirección), los bytes reemplazados llegan a 15.000, es decir...a1...b1...00000000, ambas c han sido reemplazado, y muestra que no es un virus. Se puede ver que el código de característica c1 está justo detrás de 13140040. Dentro de 1000 bytes, reduzca el número de bytes de reemplazo, como reemplazar 14900 bytes, es decir, la precisión se reduce a. 100 bytes por reemplazo. Si aún no es tóxico, reduzca el número de bytes de reemplazo a 14800 bytes y repita... hasta el posicionamiento preciso. Encuentre la posición de c1 si lo cambia de adelante hacia atrás, puede ubicarlo. la posición de a2 para otros códigos de característica, puede usar c1 y a2 ya ubicados y reemplazar uno de ellos con 0, como c1, de atrás hacia adelante. Puede ubicar c2 hasta que se ubiquen todos los códigos de característica. , el principio no es complicado, pero es muy problemático operarlo manualmente. Podemos usar MYCCL, que utiliza un principio similar. Para operaciones específicas, consulte la ayuda operativa de MYCCL. Hay otro método que es más científico. El principio es el mismo, pero el número de bytes reemplazados no aumenta en la misma cantidad, sino que aumenta en 2 a la potencia n -1. La primera vez reemplaza 1 byte y la segunda. tiempo 2 bytes, la tercera vez 4 bytes... también sigue esta regla cuando se reduce. Este método de reemplazo es algo similar al método del número binario, que puede localizar la ubicación del código de característica más rápido. también el posicionamiento de códigos de características compuestos por MYCCL Algo que debería mejorarse.
Aunque las firmas compuestas son buenas, no hay que tener miedo. Estaremos exhaustos si pensamos que todos los productos antivirus tienen una firma compuesta. Definir una firma compuesta requiere varias veces la base de datos de virus. de una sola firma, lo que resulta incómodo para los usuarios al actualizar, por lo que, aparte de los virus especialmente populares, no hay muchas firmas compuestas definidas.
Alguna experiencia en la localización de firmas puede indicarle que el método de reemplazo directo se utiliza generalmente para localizar firmas de archivos, y el método de posicionamiento manual de CCL se puede utilizar generalmente para localizar firmas de memoria, y CCL; se puede utilizar para localizar automáticamente su posición. Si el archivo EXE es pequeño, puede combinar los dos métodos. Primero use el método de reemplazo directo para generarlo. Puede usar la herramienta Bole (por qué no usar CCL, porque Bole genera archivos EXE para que pueda ver cómo se ve el ícono). ). También puede encontrar Si se ejecuta normalmente, si los íconos han cambiado, significa que el encabezado PE está dañado. No lo intente, luego cárguelo en la memoria y escanee la memoria nuevamente. normalmente sin que te maten, ¡felicidades! ¡Éxito! Después de ubicar el rango general y luego usar CCL para ubicarlo automáticamente, se puede completar rápidamente. Si el archivo es grande y hay demasiados archivos generados por Bole, lo cual es un inconveniente, aún puede usar CCL para localizar. Para archivos DLL, solo puede usar CCL para localizar.
Modificación del código de funciones
La modificación del código de funciones puede requerir un poco de conocimiento de ensamblador. El CD tiene una introducción a la sintaxis de ensamblaje comúnmente utilizada. Las principales modificaciones incluyen modificación directa y modificación de salto.
El método de modificación directa utiliza reemplazo de instrucciones equivalente, como
add eax,0c es equivalente a sub eax,-0c
o cambio de secuencia de instrucciones. no afecta el efecto de ejecución, por ejemplo
agregar eax,0c; agregar 0c al registro eax y asignarlo a eax
agregar ebx,05 y agregar 05 al registro ebx; asignarlo a ebx
Equivalente a
agregar ebx,05; agregar 05 al registro ebx y asignarlo a ebx
agregar eax,0c; al registro eax y asignarlo a eax
Otro método es que si el código de característica es código ASCII, puede cambiar directamente las mayúsculas, las letras minúsculas a mayúsculas y las letras mayúsculas a minúsculas.
Empaquetado
No hace falta decir que todo el mundo sabe cómo utilizar las herramientas. El principio del empaquetado es agregar un programa de protección al programa original, que tiene funciones de protección y cifrado después de ejecutarse. el programa empaquetado. El archivo se protege ejecutando primero el shell y luego el archivo real.
Lo que quiero recordarles a todos es que no importa qué tan bueno sea el empaquetador, muchas personas lo matarán, por lo que es mejor aprender bien el texto electrónico e ir a sitios web extranjeros para encontrar herramientas de empaquetado.
Modificar los archivos empaquetados
Después de empaquetar, habrá un código especial en la entrada del programa. Puede usar OD para abrir los archivos empaquetados con diferentes herramientas de empaquetado, y podrá encontrarlos. las diferencias El código al comienzo del shell es diferente. También se puede decir que es el código característico del shell. Para el software antivirus de shell de uso común, puede eliminar el shell y luego escanearlo. es la llamada tecnología de penetración de shell para evitar que el software antivirus lo reconozca como ¿Qué tipo de shell se agrega? Podemos agregar shells dobles o modificar el código al principio para que el antivirus no pueda verlo. Qué herramienta agregó el shell Aquí solo hablaré sobre un método de modificación. Puede consultar las instrucciones para eliminar el encabezado y agregar un encabezado de función al área en blanco, y luego JMP salta a la entrada original. De esta manera, el antivirus juzgará mal la herramienta empaquetadora, logrando así el efecto de evitar la muerte. De hecho, existen muchos métodos y, siempre que esté dispuesto a pensar, siempre podrá encontrar una manera de solucionarlo.
Otra forma de modificar el shell es modificar la entrada del segmento EP. Utilice Peid para comprobar el troyano descascarado. Puede encontrar la dirección del segmento EP, que es la entrada de la sección. Dirección de entrada del EP, puede Para lograr el efecto de evitar matar, la herramienta utilizada es reloc. Pregúntele a Google sobre el método de uso específico.
Antivirus sin comportamiento
El representante de este tipo de antivirus es Green Eagle PC Universal Elf. En términos generales, después de ejecutar el troyano, se copiará en el directorio del sistema y luego se ejecutará. El archivo original se puede eliminar automáticamente. Hoy en día, los troyanos generalmente insertan procesos para acceder a la red. y lo mismo ocurre con la configuración del inicio. Lo que debe hacer el troyano es escribir en el registro, unirse al servicio, escribir en el controlador, etc. Estos son los comportamientos únicos del troyano. Podemos utilizar herramientas de monitoreo del registro y de modificación de archivos, como buscadores asistidos por troyanos, para registrar los archivos y el registro modificados, y especular sobre qué comportamiento puede estar monitoreando el antivirus para corresponder al comportamiento modificado para lograr evitar el comportamiento. También existe un método general. El antivirus conductual no escaneará ni eliminará los elementos de inicio del sistema. Podemos reemplazar los elementos de inicio del troyano con elementos de inicio automático que no sean del sistema para evitar con éxito el virus. En cuanto a otros métodos, puedes investigarlos tú mismo.
En cuanto a agregar 1 a la entrada que circula en Internet, usa PEditor para agregar 1 a la dirección de entrada del troyano. A veces también puede lograr el efecto de evitar la muerte. Parece que Rising prefiere esto. Tengo un pequeño truco que puedo contarle: para evitar que sus troyanos antivirus sean detectados durante el mayor tiempo posible, es mejor elegir troyanos más antiguos. Para los troyanos nuevos, vigile de cerca los antivirus y actualícelos. la base de datos de virus con frecuencia. En cuanto a los antiguos... No hace falta decir que.
Resumen:
Los pasos generales del antivirus son definir primero la firma de la memoria, modificar la firma de la memoria, agregar instrucciones para hacer que el archivo sea antivirus y definirlo si es todavía está siendo verificado por algún antivirus. Archive el código de función, modifique el código de función, luego realice un comportamiento anti-kill, luego agregue el shell y luego modifique el shell. Generalmente, solo necesita usar Rising para evitar el antivirus de memoria. Otros programas antivirus no tienen antivirus de memoria real. Por ejemplo, el escaneo de memoria de Kaspersky es un escaneo rápido de archivos. Generalmente agrega instrucciones sofisticadas (aprenda una). poco ensamblaje y desorden con algún código basura). Es muy simple) En el futuro, puede evitar la verificación y eliminación de archivos por parte de Kingsoft, Rising y Jiangmin. Si hay un problema, deberá ubicar el código de función y modificarlo. La verificación y eliminación de archivos de Kabbah es muy buena, y casi todos se pueden guardar después de agregar un shell. Si puede verificarlo, generalmente necesita ubicar el código de función y luego modificarlo. código de característica en el encabezado PE, simplemente use herramientas como Beidou para agregar un shell y cambiar el encabezado PE a un desorden, y no lo reconocerá. Si aún desea mejorar el software antivirus, puede cambiar sus servicios. y claves de registro a las que no son esenciales para el sistema. Si eres un perfeccionista, puedes modificar los archivos empaquetados y cambiar el software antivirus por otros que no sean esenciales.