1 (изменено: stir, 2012-05-12 11:18:51)

Тема: JS: help for ICQ pass

Не думал, что создам такую тему...
Требуется помощь. Супруга не помнит пароль к аське, а я был уверенным что такое никогда не забывают пользователи и удачно снес винду, .
При помощи встроенных сервисов на сайте не удалось получить ссылку на почту, т.к. в их базе пропала почему-то часть адреса электронки, другие способы восстановления недоступны т.к. изначально не были предусмотрены. Ответов на мои запросы по электронке так и не поступало, прошло около недели. Прошло около года после последнего использования учетки, однако она еще существует.
В интеренете нашел некоторые проги по подбору пароля, но (!) там предусмотрен ручной ввод пароля и перебор номеров асек. что не соотвествует моим требованиям...

Задача: создать текстовик с паролями. Их придется генерировать используя не только цифры, но другие символы (кроме русских) с длиной от 1 до 8 (так рекомендуют на сайте) паролей.

Почему обращаюсь к вам, дело в том, что возможно учетка уже была использована хаккером, поэтому имеющиеся в человеческой памяти пароли более не актуальны.. Как создать цикл перебора паролей исключая повторений символов?

Думаю, например так:


function pr2() {
var s=k="";
var loginnumer="*********;";// логин аси + ;
var l=0;//начало отсчета в циклах
var ar1=new Array();
var ar2=new Array();
var ar3=new Array();
var ar4=new Array();
var ar5=new Array();
var ar6=new Array();
var ar7=new Array();
var ar8=new Array();//архивы возможных значений пароля
var pass= new Array ("0","1","2","3","4","5","6","7","8","9","q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");//словарь для перебора
var n=pass.length;//кол-во символов перебора .. от цифры 0 до последней буквы или знака
for ( var m1 = l; m1 < n; m1++){
     for ( var m2 = l; m2 < n; m2++){
         for ( var m3 = l; m3 < n; m3++){
              for ( var m4 = l; m4 < n; m4++){
                  for ( var m5 = l; m5 < n; m5++){
                       for ( var m6 = l; m6 < n; m6++){
                            for ( var m7 = l; m7 < n; m7++){
                                  for ( var m8 = l; m8 < n; m8++){
                                  s = loginnumer +pass[m1]+pass[m2]+pass[m3]+pass[m4]+pass[m5]+pass[m6]+pass[m7]+pass[m8];
                  ar8[m8]=s;
                  }
                  ar7=ar7.concat(ar8);
                }
                ar6=ar6.concat(ar7);
               }
               ar5=ar5.concat(ar6);
          }
          ar4=ar4.concat(ar5);
          }
          ar3=ar3.concat(ar4);
     }
     ar2=ar2.concat(ar3);
     }
     ar1=ar1.concat(ar2);
}
k=ar1.join("\n");
//далее запись k в тхт файл
var namefiles666 ='C:\\666.txt';
createfiles(namefiles666);
writefiles(namefiles666, k);
alert("The end 666");
}

С началом ведения такого перебора не тороплюсь, т.к. мой домашний айпи скорее всего попадет в черный список после такой атаки с перебором на сервак, .
Знаю, что можно завести новую учетку, но смысл в другом - а если снова такое повториться?

ПС: есть опасение, что цифры начнут суммироваться в текстовой переменной s...
Если у кого есть идея лучше - отпишитесь здесь..

Любители построили Ковчег, а профессионалы - Титаник.

2

Re: JS: help for ICQ pass

выполнение скрипта вызвало ошибку в памяти..

Любители построили Ковчег, а профессионалы - Титаник.

3 (изменено: stir, 2012-05-12 11:18:18)

Re: JS: help for ICQ pass

изменил вот так

function pr3() {
var namefiles666 ='C:\\666.txt';
createfiles(namefiles666);
alert("createfiles new files 666");
var s=k="";
var loginnumer="*********;";// логин аси + ;
var l=0;//начало отсчета в циклах

var pass= new Array ("0","1","2","3","4","5","6","7","8","9","q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");//словарь для перебора
var n=pass.length;//кол-во символов перебора .. от цифры 0 до последней буквы или знака
for ( var m1 = l; m1 < n; m1++){
     for ( var m2 = l; m2 < n; m2++){
         for ( var m3 = l; m3 < n; m3++){
              for ( var m4 = l; m4 < n; m4++){
                  for ( var m5 = l; m5 < n; m5++){
                       for ( var m6 = l; m6 < n; m6++){
                            for ( var m7 = l; m7 < n; m7++){
                                  for ( var m8 = l; m8 < n; m8++){
                                  s = loginnumer +pass[m1]+pass[m2]+pass[m3]+pass[m4]+pass[m5]+pass[m6]+pass[m7]+pass[m8];
                                  writefiles666(namefiles666, s);
                  }
                }
               }
          }
          }
     }
     }
}
alert("The end 666");
}

см текстовик: старт с 00000000, а дошло через 30 мин только до 00000otn, опять вылетела ошибка..

Любители построили Ковчег, а профессионалы - Титаник.

4

Re: JS: help for ICQ pass

stir пишет:

возможно учетка уже была использована хаккером, поэтому имеющиеся в человеческой памяти пароли более не актуальны

Пароли регистрозависимы, поэтому надо перебирать придется гораздо больше. Перебирать придется еще больше, так как пароль может содержать знаки препинания, скобки и слеши, то есть все то что набирается SHIFT+цифра. И не только.

То есть словарь должен быть гораздо больше.

stir пишет:

Как создать цикл перебора паролей исключая повторений символов?

Если бы так и было: некоторое слово из 8 символов, содержит только цифры и буквы, а регистр не принципиален, то можно было бы сделать так:


var j;
var n = 1e8;
for (var i = 0; i < n; i++) {
	// число в 36-ричной системе счисления: цифры 0..9,a..z
	j = i.toString(36);
//	j = ('00000000' + j).slice(-8); // убрать комментарий в начале строки, если требуется строка фиксированной длины
	alert(j);
}
( 2 * b ) || ! ( 2 * b )

5 (изменено: stir, 2012-05-12 11:11:04)

Re: JS: help for ICQ pass

Как создать цикл перебора паролей исключая повторений символов?

- я не так наверное выразился, но например все символы идентичные как 88888888 или кккккккк - такое врядли встретится.. можно бы и исключить.. хотя не принципиально.
второй вариант работает, но оченЬЬЬ долго перебирает комбинации.. и по истечении некоего времени - вылетает.. думаю причина в псевдозависании проги в которой я все тестю..

Rumata, вы правы, я специально укоротил словарь для проверки работоспособности кода.. однако его необходимо дополнить в будущем обязательно.

А возможно создание и использование функции с помощью словаря для создания комбинации вместо вложенных циклов?

число в 36-ричной системе счисления: цифры 0..9,a..z

- Заглавных букв там нет, а символы: +,-,_,&,%,@ и т.д. там присутствуют?? Если да - то это может решить частично проблемму словаря сразу же, ...

Тестовый прогон №2 последнего кода:
Вылетела прога на 37922 строке записи в тхт файл, последнее значение = 00000z9r, время работы = 1 час, что примерно соответствует менее 33% или даже 25% всех комбинаций...
Ошибка:
ошибка получена в коде дозаписи в файл при его открытии -

//дозапись данных в файл
function writefiles666(namefiles,s){
var fso = new ActiveXObject("Scripting.FileSystemObject");
            var f11 = fso.OpenTextFile(namefiles, 8, true);
                f11.WriteLine(s);
            f11.Close();    
}

Буду пробовать отключать антивирус, может еще чего сделаю - пока что даже не знаю в чем тут дело. Может кол-во строк в тхт файле достигло предела..:( (его объем =740 Кб) и придется создавать кучи файликов...:rolleyes:


Еще: можно конечно сделать радиокнопки или чекбоксы для разумного перебора комбинаций - например, только цифры, буквы прописные или заглавные, или же комбинации оных (соединять различные словари- массивы), я над этим думаю сейчас..

Любители построили Ковчег, а профессионалы - Титаник.