Red de conocimiento informático - Consumibles informáticos - Complementar el código fuente

Complementar el código fuente

Es muy importante escribir un programa y depurarlo. Depurar virus es en realidad depurar programas. La única diferencia es que al depurar un programa normal, puede ejecutar el programa a voluntad, pero no puede depurar virus. Si estás haciendo una versión de lanzamiento, creo que tampoco lo harás.

Atrévete a ejecutarlo en tu propia máquina.

1. Depurar paso a paso. Nunca comience a escribir un nuevo módulo cuando un módulo tenga errores. Un virus completo puede

que puede causar mucho daño a su máquina. Sería bueno ajustar cuidadosamente sus extremidades antes de que el virus cobre vida.

Ideas, pero también una buena oportunidad para la optimización local. Por ejemplo, si escribe un módulo de infección, está bien, primero.

Simplemente depúrela hasta que pueda combinar con éxito su pseudovirus actual (parte del código del virus + parte del código auxiliar de depuración)

) con el host. Luego abandonarla temporalmente y concentrarse en escribir otras partes, hasta vincularla finalmente con todo el virus.

Juntos y luego depurarlos por completo. No se apresure a ponerlo en práctica solo porque esté entusiasmado con una nueva idea. Si escribe el virus completo de una vez, la depuración será dolorosa.

2. OutputDebugString. Hoy en día, las herramientas de depuración están bastante desarrolladas, pero a veces la antigua tecnología de impresión "printf"

sigue siendo muy útil. En Windows, este "printf" es OutputDebugString(cadena M (m

TRACE se puede usar en FC, se puede usar para enumerar información en la ventana de salida de la herramienta de depuración y puede

Le dirá dónde está el virus ahora. Es posible que las personas que están acostumbradas a las poderosas funciones de depuración de Delphi y VC no sepan mucho sobre esto.

El encanto de una tecnología antigua lo hace sentir perdido. al depurar un error, pruébalo.

Ten en cuenta que OutputDebugString envía cadenas al depurador, por lo que debería haber un "depurador" para monitorear tu virus.

Para interceptarlos. strings. Por supuesto, puede utilizar Delphi o VC para adjuntarlo a su programa antivirus, pero una mejor opción es

Xu Shi

a. información de salida Ctrl+D abre SI y lo ve en su ventana de salida

b. Descargue un DbgView y ejecútelo.

3. , obviamente no puedes permitir que tu virus busque archivos en tu máquina para infectar.

Agrega algunas líneas de código al módulo de infección. Deja que determine el nombre del archivo e infecte solo archivos específicos.

Por ejemplo, solo se infectarán los archivos que comiencen con damn. Deberíamos considerar cuidadosamente la elección de los archivos virtuales si solo usas uno.

Felicitaciones, tu virus a menudo fallará en el combate real. p>

Los compiladores de nd y Microshit son muy diferentes (incluso si ambos son Borland. Hay diferencias entre Delphi y BCB).

El Exe generado por BCB tiene una tabla de exportación, que es. especial y no generado por Delphi

Preste atención a la diferencia. Su virus será débil y vulnerable. Necesita encontrar varios archivos para probar, plan Del

Phi, plan BCB. , plan VC, plan TASM, plan SFX, etc., deben ser los objetos de su experimento.

Pruebe con un programa que su virus no infecte pero que pueda verificarse, como un programa DOS. de mis virus anteriores (Win32. Carta de intención de compra

Cer) porque solo las pruebas son virus PE efectivos, por lo que hay muchos errores

4. pruebas algunas líneas de código durante unos días, estás seguro de que tu código es correcto, pero aún así aparece.

Cuando sale mal, es posible que tengas que cuestionar el sistema operativo y. algunos ensambladores extranjeros (no expertos en virus) no pueden evitarlo.

Las personas que quieren maldecir a MShit son unos cerdos, porque Windows puede introducir errores inesperados en su programa.

Prueba uno.

Para algunas API que necesitan procesar cadenas, antes de llamar, establezca DF en 1 (con instrucción estándar) y luego llame, ¿lo ve...?

……… … ...Para no ser interferido por M$, debes tener mucho cuidado al codificar y asegurar la base del indicador al llamar a la API.

Esto se reconoce por M$, como DF, CF compensados, principalmente DF.

5. Acerca de la depuración de código. Para limitar el comportamiento del virus durante la depuración, es posible que necesitemos agregar algún código de depuración, como el código para determinar el nombre del archivo. Estos códigos no aparecerán en la versión de lanzamiento y solo son útiles durante la depuración, por lo que debemos.

elimine este código en la versión de lanzamiento. Hay dos métodos, uno es usar compilación condicional

Estos códigos están incluidos, por ejemplo

Si está depurando

mov eax, [esi]

cmp eax, 'nmad'

jnz notinfect

endif

En las versiones de lanzamiento, simplemente declare debug como debug = 0.

La segunda es eliminar por completo estos códigos en la versión publicada. Esta es la más completa y menos propensa a errores. Personalmente prefiero el segundo, pero para estar seguro suelo utilizar ambos. Para facilitar la identificación del código de depuración, se requieren ciertos códigos.

Estilo. Ya sea ensamblador o C, generalmente sangramos el código, por lo que para identificar el código de depuración, podemos escribir todo el código de depuración a la vez, lo que parece muy abrupto y fácil de identificar. Mantenga un buen estilo de codificación en todas las circunstancias.

Los estudios de casos son un hábito que vale la pena cultivar.

6. Lea atentamente el código. Incluso si intentas 1000 situaciones y demuestras que tu virus funciona bien, eso no significa que así sea.

¿Y si 1001 todavía tienes tanta suerte? Es difícil eliminar errores de verdad, pero podemos intentar eliminarlos

y reducirlos al mínimo. Es posible que su virus esté funcionando bien en circunstancias "normales", pero ¿qué pasa con los casos extremos? Por ejemplo, ¿qué pasará si se infecta un archivo PE con un tamaño de 3G?

Quizás no quiera o no pueda dedicar demasiado tiempo a escribir y depurar virus.

Así que no puedes hacer algunos experimentos extremos, así que si aún no quieres dejar de encontrar errores para los virus que se han probado.

Es una buena idea leer atentamente el código del virus. Lo creas o no, la dimensión de los estereotipos humanos es algo serio. Pongamos un ejemplo que quizás todo el mundo haya experimentado. ¿No siempre tuve que hacer exámenes cuando estaba en la escuela? Yo

A menudo, después de terminar de escribir las respuestas, las reviso y no encuentro errores, así que creo que no hay problema. Entonces me siento inquieto y quiero dormir, pero

. Me siento triste por el examen y por qué. Sentir lástima por mí mismo y por las personas................................. ..... ................................................. .................... ..................), quiero comprobarlo de nuevo, quiero siéntelo de nuevo.

Tenía razón, pero no pude averiguarlo, así que estuve confundido hasta que sonó el timbre y al final no obtuve una puntuación perfecta. Hablando de estas tonterías, solo quiero explicar un tema, es decir, cuando lees tu propio código, si todavía estás leyendo el código fuente, es posible que lo sientas tú mismo.

Muy bien, la mentalidad es muy útil. Con la ayuda de los comentarios no se puede encontrar nada. Entonces es mejor cambiar el camino.

Utilice IDA para desensamblar su virus y luego observe los resultados del desensamblaje. Como virus escrito por otra persona, debería estar bien.

Es más fácil ver el problema y luego verificar el código fuente de las áreas problemáticas para determinar si se trata de un error. Por supuesto, este método

es efectivo para compilar virus, pero para cosas escritas en otros idiomas, mira el código fuente.

Básicamente, profundicemos un poco más y veamos algunas situaciones de depuración de virus.

1. Depuración entre procesos.

A veces resulta muy útil e interesante acosar otros procesos mientras el virus se está ejecutando, por lo que es necesaria la depuración entre procesos.

. La depuración entre procesos mencionada aquí realmente no le permite depurar el proceso del host. Sigue siendo muy problemática e innecesaria.

Sí. El resultado que queremos saber, normalmente es ver la salud del virus, entre otros procesos, si está contento.

. En este caso, nada funciona mejor que OutputDebugString. Agregue algunas instrucciones al código insertado y ajuste

para usar OutputDebugString para registrar los latidos del virus. Cuando vea que se ha generado toda la información que debería estar presente, podrá

decir que el proceso de implantación fue exitoso. Para la dirección de OutputDebugString, puede utilizar codificación rígida. Int 3 también es un buen método, muy efectivo y generar información como OutputDebugString no requiere muchos bytes.

Sólo un byte es suficiente. Coloque algunos int 3 en el código de inserción, luego asegúrese de que i3here en SoftIce esté activado.

, es una muy buena elección.

2. Depuración entre máquinas

Una tendencia importante en el desarrollo de virus es el cambio de la infección en una sola máquina a la infección entre máquinas. Los canales de transmisión entre máquinas pueden incluir

.

Incluye LAN, Internet, dispositivos inalámbricos, etc. Al escribir este tipo de virus, debes depurarlo cuidadosamente y ejecutarlo localmente.

Es posible que el virus haya muerto al buscar en la LAN.

3. Depuración de código de timbre 0. Me gustan los virus Win32 que sobreviven en la mayoría de las máquinas, por lo que el anillo 3 es el virus principal.

Sin embargo, es posible que a algunas personas les guste una tecnología más profunda y quieran jugar con los virus del anillo 0. Aquí hablaré un poco sobre la depuración del anillo 0.

. Si desea depurar un virus de anillo 0, prepárese para el sacrificio si lo depura en su propia máquina.

Una gran cantidad de pantallazos azules te marearán.

-