Перебор паролей [Delphi] Не могу написать программу(delphi) перебора пароля, знаю что пароль семизначный и состоит из латинских букв(без регистра) и цифр. В голове вертится код, но не могу его перевести в жизнь. Помогайте. Сразу скажу, что пароль нужен для прокси. Хотя словарик мне бы не помешал, я искал, но не нашел. P.S.: взломал сетку wi-fi, там стоит сервак isa+trafficFilter pro. Удалось ломануть сервак и выгрузить все логины на доступ в интернет, там есть безлимитки и мне они как раз и нужны. Знаю, что пароль сгенерирован программой.
ну если у тебя что то не получается ты народу хоть исходники покажи пальцем в небо никто тыкать не будет
Code: const m='qwertyuioplkjhgfdsa0123456789'; Var i,j:integer; s,str:string; begin str:=''; for j:=1 to 7 do begin for i:=1 to length(m) do begin s:=str+m[i]; smemo1.Lines.Add(s); end; str:=s; end; end; В ответ получаю: А мне надо, чтобы программа выдавала 8041810176 комбинация. Ну, а если полностью, то параллельно она должна проверять, по полученному списку, доступ в интернет по прокси(но это я сам могу решить).
medved6216, код должен быть примерно такой Code: const m='qwertyuioplkjhgfdsa0123456789'; Var i1,i2,i3,i4,i5,i6,i7:integer; begin for i1:=1 to length(m) do for i2:=1 to length(m) do for i3:=1 to length(m) do for i4:=1 to length(m) do for i5:=1 to length(m) do for i6:=1 to length(m) do for i7:=1 to length(m) do smemo1.Lines.Add(m[i1]+m[i2]+m[i3]+m[i4]+m[i5]+m[i6]+m[i7]); end; итого это будет length(m) в 7 степени паролей, то есть для данного m=29 число паролей = 17 249 876 309. Так что лучше ищи словарь
держи на vbs-е .... когда то давным давно писал =) Dim a,b,c,d,e,f,i,m,n,o,p,q,s DimMyArray MyArray=Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9") Dimfso,Text Setfso=CreateObject("Scripting.FileSystemObject") SetText=fso.CreateTextFile("c:\pass7.txt") x=MyArray(h) for a=0 to 35 m=MyArray(a) for b=0 to 35 n=MyArray(b) for c=0 to 35 o=MyArray(c) for d=0 to 35 p=MyArray(d) for e=0 to 35 q=MyArray(e) for f=0 to 35 pass=x+m+n+o+p+q+MyArray(f) Text.WriteLinepass next next next next next next next Text.Close
Алгоритм перестановки же. КЛИК Хотя, здесь нужен другой алгоритм. Вот здесь он есть и алгоритм перестановки тоже. Всё на Delphi. КЛИК
medved6216 Мб помочь? Могу на шарпах многопоточную прогу замутить, я думаю быстрее будет. Взялся писать, через пару мин думаю будет! Мысль пошла дальше. Пишу на Си под Linux ^^ Я врун. Вчера так и не сделал. Седня написал, генерю. Уже сгенерил 2 чего то там из 27(или 28) чего то там. Файл огромный .
Я сегодня утром сбросил(надобность машину перезагрузить была) Кое-что подправил) Сейчас уже наверстал упущенное и уже сделал сверх)
Я сгенерил за минут 10. На машине: Athlon x2 215 2gb RAM Файл вышел 126 гигов. Код на Си. Code: #include <stdio.h> #include <stdlib.h> int main() { char sym[] = { "qwertyuioplkjhgfdsa0123456789" }; int i1, i2, i3, i4, i5, i6, i7; int counter = 1; int _lenght = strlen(sym); FILE* pFile; pFile = fopen("/home/jakeroid/passwords.txt", "w"); for (i1 = 0; i1 < _lenght; i1++) for (i2 = 0; i2 < _lenght; i2++) for(i3 = 0; i3 < _lenght; i3++) for(i4 = 0; i4 < _lenght; i4++) for(i5 = 0; i5 < _lenght; i5++) for(i6 = 0; i6 < _lenght; i6++) for (i7 = 0; i7 < _lenght; i7++) { char str[9] = {sym[i1], sym[i2], sym[i3], sym[i4], sym[i5], sym[i6], sym[i7], '\n'}; fputs(str, pFile); if (i1 >= counter) { printf("%d, > %d\n", i1, counter); counter++; } } fclose(pFile); return 0; }
ты использовал: qwertyuioplkjhgfdsa0123456789 а я: abcdefghijklmnopqrstuvwxyz0123456789 29 символов и 36 символов.У тебя получаеться 17249876309 комбинаций, а у меня 78364164096, разница 61114287787 комбинаций ) Ну всё равно быстро) Друг, давай, чтобы не делать одно и тоже, нужно ещё сгененрировать словарь из русских букв и чисел(если конечно интересно). Ну там писец долго будет) Хотя я, на всякий случай, твой код на Си сохранил))) Если у тебя файл уже получился 126 гигов, сколько у меня получиться интересно)
Я могу разбивать файлы, например по 1кк пассов. А не долго это все потом перебираться будет? Да, про русские буквы... У мну нету места на харде для такого файла... И как я потом его залью? Архивировать два дня?
Ту стоит подумать))) Перебирать будет долго) Но можно попробовать в несколько потоков пустить) Скажем в 100. И к тому же перебор не полный, а только до попадания. Вопрос в размера очень проблемный) Ладно, пока посмотрю, что получиться с этим словарем) и кстати места он у меня занимает, не более 5 гб пока) потому, что я смотрю по жестким дискам и в оперативке, но не вижу больших изменений.
2 medved6216 размер файла легко вычислить) 1) кол-во комбинаций будет равно: кол-во символов возвести в степень длинный строки. 2) размер файла будет равен кол-во комбинаций умноженное на (длинну строку + 2) 2 - винда. 1 - никсы. Вот и выходит. Если тебе надо русские символы большие и маленькие + цифры, то 33*2 + 10 = 76 символов. для длинны строки = 7 символов, выходит 14645194571776 комбинаций. Значит всего выходит минимум 117161556574208 байт будет весить этот файл. 117161556574208 = 106,5 терабайта ) выходит )
Code: #include <fstream> #include <string> int main() { std::string s = "abcdefghijklmnopqrstuvwxyz"; std::ofstream fout("5letters.txt"); for (int i1 = 0; i1 < s.size(); ++i1) { for (int i2 = 0; i2 < s.size(); ++i2) { for (int i3 = 0; i3 < s.size(); ++i3) { for (int i4 = 0; i4 < s.size(); ++i4) { for (int i5 = 0; i5 < s.size(); ++i5) { fout << s[i1] << s[i2] << s[i3] << s[i4] << s[i5] << "\n"; } } } } } return 0; } вот, когда-то писал на с++,словарь паролей из 5 букв,ну думаю если понадобится,тут не трудно сделать,чтобы генерация была на 6-7 букв...дописать пару строк и усе,тока весить будет много!