Curso de virus

Solo disponible en BuenasTareas
  • Páginas : 38 (9393 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de septiembre de 2010
Leer documento completo
Vista previa del texto
Curso de Virus
Creado y distribuido por Leandro Martin Drudi el mas petero Bajado desde: http://www.leadrudi.blogspot.com/ Empezaremos por contaminar archivos com, ¿que qué diferencia hay entre archivos com y exe? pues fácil, si os habéis fijado los archivos com ocupan como máximo 65 kbytes y pico. ¿qué porque es así? , pues porque los com se cargan en un único segmento de memoria. Y no mevengáis diciendo que el command.com del windows 95 tiene más porque aunque tiene extensión com es un archivo exe (es un exe camuflado je,je,je ;) ) Los exe's utilizan un cabezera con información acerca del tamaño del archivo,la posición inicial para empezar a ejecutar el file la posición del stack y demás choradas necesárias para cargarlo en varios segmentos de memoria.El inicio de dicha cabecera es MZ¿que porque esa marca? ,yo que sé ,yo no creé la estructura de los exe's, de alguna manera los tenían que marcar. Bueno la verdad es que lo que realmente diferencia un exe de un com es esa marca , la extensión simplemente sirve para que el DOS sepa que ejecutar primero com->exe->bat. El virus que vamos a hacer no será residente por lo que es bastante sencillo .Contamina en un único directorio porlo que además de ser sencillo tendrá una infección practicamente patética. Pero bueno es pa ke entendáis el rollo este de los com. La contaminación de los com's se puede hacer añadiendo el código del virus al principio del hoste(programa infectado) pero no es recomendable por cuestiones de rapidez, por lo que lo bonito es quitar los 3 primeros bytes del archivo (guardarlos en el código del virus)poner en su lugar un jmp virus (es decir un salto incodicional al código del virus, que lo añadimos al final del hoste).Cuando acaba la ejecución del virus los 3 bytes que habías guardado los restauramos al principio del virus y le pasamos el control al hoste. Facil noooo??? ----------------| jmp virus | ----------------| codigo del | | hoste | ----------------| virus: | | contamina | | recuperalos | | 3 bytes | | originales y | | jmp hoste | ----------------Ahora que sabemos la teoría , tenemos que buscar una manera de marcar los archivos para no volverlos a contaminar infinitas veces. Como vamos a tener que poner un jmp al principio del hoste , pues este propio jmp funcioná de marca de infección. El virus infectará a los archivos que no empiecen con un jmp.El código del jmp ocupa 1 bytey la dirección a saltar con un byte ocupa 2 bytes 1 byte del jmp + 2 bytes dirección = 3 bytes (lo que pillamos del hoste) Otra cosa. Al programar un virus lo que se hace normalmente es crear

un archivo contaminado, en este caso nuestro hoste contaminado contendrá un jmp start (salto al principio del virus) y la int 20h para regresar al dos. longitud code hoste: start: alli: equ fin-startsegment 'code' assume cs:code,ds:code,es:code org 100h ;empiezo en 100 ya que es un com jmp start ;esto es un hoste simulado int 20h ;con esto salgo al DOS push bp call alli ; busco la ip de inicio pop bp ; para que la variables no sub bp,offset alli ; aparezcan corridas :-)

Con esto lo que hacemos es definir la constante longitud como la diferencia entre dos etiquetas que hemos puesto alprincipio y al final del virus(obviamente) con lo que el linkador nos traducirá longitud como el tamaño del virus. El org 100h es para que el programa se carge en el offset 100h, los com's siempre se cargan en el offset 100h ya que tienen que dejar 100h bytes para que el DOS guarde información sobre el programa esos 100h bytes forman lo que se llama el PSP. En el hoste meto un jmp start con lo que estearchivo estará ya marcado como infectado. Ahora viene lo gracioso, que coño hace ese call ahí.Bueno ¿por qué un call? ¿acaso los call no són para llamar a procedimientos? ¿y el procedimiento?¿no veo ninguno?¿y la famosa instrucción ret para regresar del procedimiento tampoco la veo? Respuesta: No es una llamada a un procedimiento. Es simplemente una pirula para que se puedan direccionar las...
tracking img