Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Игровые платформы, клиенты > iCCup
Присоединяйся к нам

iCCup Лаунчер для игры в сети Battle.net на собственных серверах по StarCraft, WarCraft, Dota. Обсуждение, вопросы и ответы касающиеся iCCup`a в целом.



Закрытая тема
 
Опции темы Опции просмотра
Старый 03.01.2014, 23:26   #1
Матерый
 
Аватар для nyasha74
 
Регистрация: 03.01.2014
Адрес: Харьков
Сообщений: 184
Репутация: 72
Отправить сообщение для nyasha74 с помощью Skype™
Автор Вопрос

Помогите с алгоритмом для брута


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

Прикинул циклический алгоритм для брута из строк сурса
  • 1. что-то, указывающее циклу переходить постоянно на следующую строчку сурса после прохождения цикла и на каждые 5 циклов переходить на следующую строку прокси
  1. Очистка переменных
  2. Чтение из сурса до сепаратора и копирование в переменную login
  3. Чтение из сурса после сепаратора и копирование в переменную pass
  4. Составление пакета для отправки на сервер (wc3.theabyss.com, или сайт, но там капча, я знаю что на wc3 дается 5 попыток, но потом бан по IP на пол часа)
  5. Проверка строки прокси на пинг.
  6. Если прокси не пингуется, то указание контролеру цикла перейти на след. строку в прокси после чего return 1
  7. Отправка пакета через прокси и ожидание ответа
  8. Расшифровка ответа и приписывается ряд условий
if (положительно)
→ сохранение строки в Good
if (отрицательно)
→ сохранение строки в Bad
if (1 и 2е if не подходят)
(знач сервер ответил 502ю) return 7
9. return 1
Вот собственно мною составленный алгоритм без запуска
граф. оболочки, присвоении процесса... и выгружение из памяти в конце (А консольный будет проще в написании?)
Я еще хочу сделать брут, чтобы мог ломать пароли с юником, но себе противоречу, потому что в консоли только кодировка ANSI.
Еще нужно добавить в исполняемом цикле брута:
Код:
#define _UNICODE
# include <tchar.h>
А, еще без макроса _TEXT символы ANSI будут недоступны
Еще гдето нужно дописать typedef wchar_t TCHAR или typedef unsigned char TCHAR
Потом, когда использовать, ну я не знаю как указать циклу брута, чтобы каждая Unicode строка чит с сиволом *. Это значит нужно циклу дописать условие при использовании строки юником и куда вставлять в цикл?
Код:
#ifdef _UNICODE
      typedef _TEXT (x) L ## x
#else
      typedef _TEXT (x) x
Кликните на для просмотра офф топика

Последний раз редактировалось nyasha74; 04.01.2014 в 15:34.
  Наверх
Старый 04.01.2014, 02:46   #2
Новичок
 
Аватар для TonyN9ne
 
Регистрация: 05.12.2012
Сообщений: 9
Репутация: 1
По умолчанию

сделай пожалуйста отдельно логин и пасс, соурс не удобен.
  Наверх
Старый 04.01.2014, 11:58   #3
Старожил


 
Аватар для gg.Groove
 
Регистрация: 21.08.2010
Адрес: Almaty
Сообщений: 1,054
Репутация: 212
По умолчанию

Цитата:
Сообщение от nyasha74 Посмотреть сообщение
wc3.theabyss.com
это battle.net сервер же

Вообще загружаешь первые 500 строк в память, потом создаешь потоки которые по одному читают строки из массива и пытаются подключиться.
__________________

[Ссылки скрыты от гостей.]
  Наверх
Старый 04.01.2014, 12:18   #4
O kitty



 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

пиу пиу.
Читаем допустим сурс, или генерируем его не столь важно
foreach string n in nicks do foreach string p in pass do s = n + ':' + p
Далее считываем файл прокси
херачим его
private static Queue<string> proxyes в глобальную очередь.
определяем количество потоков ThreadMax = XX;
начинаем работу с сурсом
foreach (string a in source)
{
Thread ainz = new Thread(BruteForce);
ainz .Start(a);
threads.Add(worker); //Тут типо добавляем к нашим потокам новый поток
if (threads.Count >= ThreadMax) reset.WaitOne(); //Если количество потоков равно либ больше чем макс.потоков то выжидаем пока какой-нибудь из потоков не освободится
}

Перейдём к брутфорсингу

BruteForce(acc)
{
string proxy = "";
lock (sync) //sync - объект для синхронизации
{
proxy = proxyes.Dequeue(); //вытащили прокси спереди
proxyes.Enqueue(proxy); //и запихнули в конец
}
string answer = "";
try { тут где-то отправили запрос
получили ответ.
занесли в answer } catch { Вот он 'Error'. }
f(answer.IndexOf("Тут твоя дата для поиска") != -1) {
Если всё хорошо
}
else { Если всё плохо }
}
lock (sync) threads.Remove(Thread.CurrentThread); //удалили наш поток
reset.Set(); //и даёт понять что можно запускать новый поток.

PS: Хочу спать но если голова на плечах то поймёшь что я тут написал.
PPS: За тебя врядли кто-то что-то будет делать.
PPPS: Добавить твои пожелания что ты расписывал насчёт '*' это уже вполне можешь сам с минимальным знанием.
И лучше не пинговать проксю, а в случае ответа 'ERROR' (читать выше где у мну в коде ероры) просто не заносить её обратно в очередь.
Если кол-во проксей в очереди 0 то всё, сдохли все.
__________________
Бульбазавр спешит на помощь ^.^

Последний раз редактировалось Der_SySLIK; 04.01.2014 в 12:22.
  Наверх
Пользователь сказал cпасибо:
pavloff (04.01.2014)
Старый 04.01.2014, 12:44   #5
Матерый
 
Аватар для nyasha74
 
Регистрация: 03.01.2014
Адрес: Харьков
Сообщений: 184
Репутация: 72
Отправить сообщение для nyasha74 с помощью Skype™
Автор По умолчанию

я так понял прокси заранее проверяются и находятся в очереди, но по моему способу через батлу, бан на 30 мин прокси, и опять можно возвращать.
Цитата:
Сообщение от TonyN9ne Посмотреть сообщение
сделай пожалуйста отдельно логин и пасс, соурс не удобен.
я напишу такой брут для юникода, то в обычно будет усложнена прога, и будет больше памяти брать за цикл определения юникода, и еще нужно будет в кодировкой юника пароли писать в блокноте.
  Наверх
Старый 04.01.2014, 13:35   #6
Старожил


 
Аватар для gg.Groove
 
Регистрация: 21.08.2010
Адрес: Almaty
Сообщений: 1,054
Репутация: 212
По умолчанию

Der_SySLIK,
Цитата:
Сообщение от nyasha74 Посмотреть сообщение
на С++
Еще вот посмотри: [Ссылки скрыты от гостей.]
__________________

[Ссылки скрыты от гостей.]

Последний раз редактировалось gg.Groove; 04.01.2014 в 13:37.
  Наверх
Старый 04.01.2014, 13:38   #7
Матерый
 
Аватар для nyasha74
 
Регистрация: 03.01.2014
Адрес: Харьков
Сообщений: 184
Репутация: 72
Отправить сообщение для nyasha74 с помощью Skype™
Автор По умолчанию

а сурс прошлых проектов можно для изучения, была где-то прога транслятор кода
  Наверх
Старый 04.01.2014, 13:40   #8
O kitty



 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

Цитата:
Сообщение от gg.Groove Посмотреть сообщение
Der_SySLIK,
Цитата:
Сообщение от nyasha74 Посмотреть сообщение
на С++
Еще вот посмотри: [Ссылки скрыты от гостей.]

Цитата:
Сообщение от nyasha74 Посмотреть сообщение
но алгоритм независим от языка
я привёл алгоритм на примере кода
__________________
Бульбазавр спешит на помощь ^.^
  Наверх
Старый 05.01.2014, 21:25   #9
Матерый
 
Аватар для nyasha74
 
Регистрация: 03.01.2014
Адрес: Харьков
Сообщений: 184
Репутация: 72
Отправить сообщение для nyasha74 с помощью Skype™
Автор По умолчанию

все с алгоритмом разобрался можно закрыть тему
  Наверх
Закрытая тема

Метки
C++, алгоритм, алгоритмы, гугл не помогает, кодерам, мб гугл в помощь?


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


Powered by vBulletin
Copyright © 2017 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 05:43. Часовой пояс GMT +4.