Ninguno
-------------------------------------------------------------------------------
Este artículo intenta explicar los métodos mas usados de residencia,
con un enfoque mas práctico que teórico, dejando en claro lo fundamental para
poderaprovecharlos, en especial el de MCB. Muestra ejemplos de los 2 tipos de
técnicas descritos, que pueden (en el caso del MCB) usarse directamente
en sus propios virus.
La teoría no esta muy detallada, pero se encontrará todo lo necesario para
que el novato comprenda y pueda usar estos métodos. Y con la información
delarticulo, si desea profundizar la teoría, es sólo cuestión de leer alguna
guía o manual, que hable sobre la memoria, ya que aquí se explica lo básico
necesario (espero...).
Empezemos:
Los métodos más usados para dejar a un virus residente son:
los que el DOS proporciona o el método de MCB (Memory ControlBlock).
La primera forma es la más simple, pero también la mas ineficaz,
primero porque le informa al DOS que se esta dejando algo residente... además
al ejecutarse esa función retorna el control al DOS. El programa que se
intente ejecutar termina!. El virus que use esta técnica para evitar salir
al DOS en suinstalacion en memoria tiene que reejecutarse. Para quedar
residente, se ejecuta a si mismo otra vez (serv. 4bh), y en su segunda
ejecución ejecuta una int 27h o llama al servicio 31 de la int. 21h, esta a su
vez, le da el control al programa padre, al que se cargo primero, y este
puede entonces terminar, ejecutando al anfitrión. Si esto no se hiciera, al
ejecutar una int 21, por ejemplo, se le cedería el control al interprete de
comandos...
Una de las característica de los virus que usan esta técnica es que
suelen colocarse al principio de los archivos, estos servicios dejaran
residente la cantidad de parrafeo que se les indique desde elcomienzo del
programa en memoria... Si tenemos un COM de 50K y el virus al final, al
usar la int 27h, y dejar residente, por ejemplo, 1k, lo que quedaria seria
el primer K del COM, no el virus que esta al final....
Es evidente que no pondemos dejar 50k residentes... para que el virus quede
en memoria se puederelocar(mover), a otro bloque, tranferirle el control, y
luego este le cederá el control al programa padre...
Para evitar esto, muchos se colocan al principio del programa que infectan.
Claro que esto es lento, porque hay que leer todo el file, y luego escribirlo
después del virus, lo que no pasa si va al final, en ese caso solo hayque
escribir el virus, no el virus y el archivo!.
Este método es poco elegante, ademas de lento si se infecta dejando el virus
al comienzo, entre otras cosas...
Abajo, sigue un fuente de un TSR, no de un virus!, solo un TSR normal
para ilustrar su funcionamiento.
Este ejemplo intercepta la int.21 y luego le pasa el control sin
hacer nada. Se le puede agregar el código para hacer lo que se quiera.
===============================================================================
===============================================================================
code segment
assume cs:code,ds:code...
Regístrate para leer el documento completo.