Mi ¿segundo? antivirus
|
Algunos me habéis pedido que contara algo más de lo que encontré hace unos días, especialmente de aquellos programas que aparecieron con código fuente. Así que regresemos al pasado...
En mi primer año de universidad, mucha materia común y poca informática. La más interesante era la asignatura donde se veían los principios básicos de programación, y por aquel entonces se impartía en Pascal, lenguaje que nunca había tocado. Calculo que tras un par de meses de asignatura iba con mucho retraso, aun no había programado nada, ni tocar el Pascal. No ofrecía nada que no pudiera hacer con algún lenguaje que ya más o menos dominaba, además lo veía muy encorsetado... querían meterme disciplina en el código. No me motivaba. Temiéndome lo peor, decidí autoimponerme hacer algún programa para tomar contacto con el lenguaje. Aprovechando que el profesor de la asignatura permitía desarrollar algún proyectillo de forma voluntaria para tener unos puntos extras en la evaluación, le consulté al final de una clase. "¿Qué te gustaría hacer?"... dije dos o tres cosas con las que tenía alguna experiencia (la verdad es que hasta entonces principalmente había programado juegos y alguna cosa de gestión para mi padre), y en algún momento debí mencionar algo sobre antivirus. "Perfecto, acompáñame al despacho". Por el camino me contó que el departamento estaba infectado por un virus que de momento no reconocían los antivirus. Cuando llegamos me sentó en uno de los ordenadores y me pidió que lo buscara. Le pedí un disquete con programas que estuvieran limpios, lo protegí contra escritura, e hice una copia de un .COM al ordenador. Ejecuté el programa copiado. Después comparamos ambos archivos, original y copia. Le expliqué que el virus era la diferencia de código añadido que se podía ver al final del .COM que habíamos copiado al ordenador. Bauticé al virus como 2610, por su tamaño (si, no brillé por mi imaginación). "Muy bien, tu proyecto será programar en Pascal un antivirus para ese virus". Bueno, no estaba mal, al menos me motivaba más que implementar algoritmos de ordenación. Cuando llegué a casa con mi copia del .COM infectado e hice las primeras pruebas... la cosa se puso más negra. Resultaba que el virus no sólo infectaba archivos .COM, sino también .EXE y el sector de arranque. Vaya proyecto más "completito"... debía detectar y limpiar el sector de arranque, analizar todos los .COM y .EXE para desinfectarlos y devolverlos a su estado original, y además antes debía comprobar si estaba residente en RAM y eliminarlo de la memoria (el virus utilizaba técnicas "stealth", de ocultación)... y yo sin idea de Pascal. La historia terminó con final feliz. El antivirus funcionaba, que era lo que a mí me importaba, como efecto colateral aprendí Pascal, y además estaba muy estructurado y documentado, que era el otro requisito de la asignatura. Aquí veis una captura tras rescatarlo del baúl...
Si, ya lo sé, visto así no resulta nada espectacular. Es lo que internamente hoy día en Hispasec denominaríamos un "interfaz jcea", en honor a algunos desarrollos internos de Jesús, que es de esos de los que piensa que los colorines, gráficos y botoncitos son para jugar y para los usuarios de Windows. Aprovechando que a este ejecutable si le acompañaba el código fuente, os pongo algunos ejemplos. Este es el procedimiento de desinfección de los .COM:
Este otro detectaba y eliminaba el virus del sector de arranque y restauraba el original:
Lo cierto es que, si no recuerdo mal, nunca volví a programar en Pascal... pero aprendí buenos hábitos que me sirvieron más tarde. |
