Как реализовать многопоточный брут на c#?

361
21 июля 2017, 00:54

У меня есть база логинов, паролей, портов и ip адресов. Суть в том, что нужно реализовать отдельный перебор для каждого ip адреса в потоках.

    static void Main(string[] args)
    {
        int threads = 10;
        for (int i = 0; i <= threads; i++)
        {
            string[] ips = File.ReadAllLines(IpsFile);
            string[] ports = File.ReadAllLines(PortsFile);
            string[] logins = File.ReadAllLines(LoginFile);
            string[] passwords = File.ReadAllLines(PasswordFile);
            foreach (string ip in ips)
            {
                foreach (string port in ports)
                {
                    foreach (string login in logins)
                    {
                        foreach (string password in passwords)
                        {
                            Brute brute = new Brute(ip, int.Parse(port), login, password);
                            Thread myThread = new Thread(brute.BruteForce)
                            {
                                Name = "Thread #" + i
                            };
                            myThread.Start();
                        }
                    }
                }
            }
        }
        Console.ReadLine();
    }
Answer 1

Странно, что хакер ищет решения на данном ресурсе. Разве хацкер ищет легкие пути ? Воспользуйся классом Task и его методом .WaitAll(). Получишь многопоточный брут.

        List<string> IPs = GetIPs();           
        List<Task> tasks = new List<Task>();
        foreach (string IP in IPs)
        {
        tasks.Add(Task.Factory.StartNew((IP)=>{/*тут должна быть логика брута на конкретный IP адрес*/}, tasks.Count));
        }
        Task.WaitAll(tasks.ToArray());
READ ALSO
Авторизация в ВК через запрос к api

Авторизация в ВК через запрос к api

При попытке провести авторизацию через запрос к апи - получаю ответ с сервер 401В связи с тем что нужно использовать определенные юзер-агенты,от...

537
Возврат из метода return

Возврат из метода return

Помогите разобрать выполнения по этапам

306