ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Буквенный перебор C++
  #1  
Старый 18.07.2009, 21:16
Аватар для fire64
fire64
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме:
1059196

Репутация: 39
По умолчанию Буквенный перебор C++

подскажите как на C++ сделать цикл с буквенным перебором

тоесть перебор английских букв от A до Z

если конкретно то хочу сделать полный буквенный перебор как в брутфорсах

Последний раз редактировалось fire64; 18.07.2009 в 21:42..
 
Ответить с цитированием

  #2  
Старый 18.07.2009, 21:26
Аватар для Fata1ex
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Буду очень признателен, если переформулируешь вопрос ) Я нифига не понял.
Перебор чего? Что делать с полученными данными? Какой порядок у них? Какие буквы?
 
Ответить с цитированием

  #3  
Старый 18.07.2009, 22:05
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

вариантов несколько. дают разную скорость. но вполне оптимизированный по скорости - заводишь массив интов. сколько символов в пароле - столько элементов в массиве. заводишь массив словаря. например получится так

// 5 символов в словаре
char dictionary [] = { 'a', 'b', 'c', 'e', 'f'};
// 10 символов в пароле
int pass [10];

Значение в массиве pass указывает, какую букву сейчас содержит соответствующий символ пароля. Дальше делаешь инкремент последнего элемента массива pass. проверяешь на переолпнение. причем переполнение происходит когда элемент массива рваен sizeof(dictionary). Когда дошел до последней буквы - сбрасываешь в ноль и плюсуешь 1 следующему элементу массива. В итоге перебор сводится к простой арифметике. По сути это реализация системы счисления. Тока не десятичной, а сколько символов в словаре. Ну а дальше делаешь функцию passToStr(), в которой проходишь по каждому элементу массива и подставляешь вместо числа символ

string txt_pass = "";
txt_pass = string(pass[i]) + txt_pass;

типа такого. плюс данного варианта в простом изменении словаря. минус - можно сделать еще оптимизированнее.
вообще задача имеет туеву хучу решений и зависит тока от наличия моска в черепной коробке.

Последний раз редактировалось Ra$cal; 18.07.2009 в 22:07..
 
Ответить с цитированием

  #4  
Старый 18.07.2009, 22:27
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

вот еще вариант набросал за пару минут. плюс - минимум кода(4 строки в цикле). минус - много делений для разбивки на разряды.

Код:
#include <windows.h>
#include <iostream>
using namespace std;

char dic [] = {'a', 'b', 'c', 'd', 'e'};
int dic_size = sizeof(dic);

void show_pass (int pass);
void main()
{

	int pass = 0;
	while (pass < 150){
		show_pass(pass);
		cout << '\n';
		pass++;
	}
}

void show_pass(int pass)
{
	int tmp_pass = pass;

	if(tmp_pass == 0){
		// чтоьбы вывести букву с индексом 0
		// конечно можно словарь завести с 1го байта и обойтись без ифа
		cout << dic[0];
		return;
	}
	while (tmp_pass > 0){
		cout << dic[tmp_pass % dic_size];
		tmp_pass /= dic_size;
	}
}
ps: не хватает вариантов с a на конце. давайте сыграем в игру "допилите сами" =)

Последний раз редактировалось Ra$cal; 18.07.2009 в 22:39..
 
Ответить с цитированием

  #5  
Старый 18.07.2009, 22:52
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Можно по ascii кодам, + удобней будет с разным регистром.

2Ra$cal, просто ради интереса вопрос, зачем хедер апи?)
 
Ответить с цитированием

  #6  
Старый 18.07.2009, 22:58
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

по аскам удобно только для одной раскладки и регистра. иначе будут плодиться ифы.
windows.h проинклюден ибо это отдельный прожект в котором клепаю на скорую руку кодесы =) поэтому основные хидеры подрублены и using namespace добавлен=)
 
Ответить с цитированием

  #7  
Старый 18.07.2009, 23:05
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Как раз по аски будет удобней, массивы уже по сути есть, просто нужно выбрать необходимый промежуток. А забивать вручную разные регистры/раскладки - это не удобно.
 
Ответить с цитированием

  #8  
Старый 18.07.2009, 23:12
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

ну сделай на асках перебор такого словаря:
a,b,e,g,x,F,K,L,V,2,6,7,0,~,!,^,_,=,)
 
Ответить с цитированием

  #9  
Старый 18.07.2009, 23:24
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Я говорил про полный алфавитный перебор, как видишь ТС говорил про A..Z. Т.е. ему хватит перебора 41h..5Ah
 
Ответить с цитированием

  #10  
Старый 18.07.2009, 23:38
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

я о другом. просто A-Z легко перечислить инкрементя и сравнивая с 'Z' это да. Но проще все таки сделать универсальный алго. Правда это мое имхо. Но ты пишешь

Цитата:
Можно по ascii кодам, + удобней будет с разным регистром.
в чем удобство разных регистров при работе с аски кодами? тут или дублирование кода(два цикла для перебора больших букв и маленьких, еще потом можно добавить цифры) или смена лимита сравнения 'Z' на 'z' ифами. Ито ито имхо не очень удобно. Я старался сделать чтобы из всех изменений при смене набора перебираемых букв были только изменения в данных, никак не в коде, ибо это гораздо безопаснее и не повлечет ошибки.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
распределённый перебор хешэй на perl ShAnKaR PHP, PERL, MySQL, JavaScript 2 18.10.2007 00:38
Посимвольный перебор в базах данных на примере MySQL LoFFi Чужие Статьи 5 30.04.2007 05:05
Распределённый перебор *Van* Расшифровка хешей 399 24.12.2005 18:14
распределённый перебор nifus Болталка 8 15.11.2005 22:34
Распределенный перебор. Ver.3 (прием участников и хэшей) censored! Расшифровка хешей 191 06.09.2005 10:41



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


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




ANTICHAT.XYZ