PHP: <? $file=file_get_contents('Untitled.Hashes'); preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(127).'(.*)'.chr(127).chr(127).'|',$file,$matches); $passes=$matches[2]; $hashes=$matches[1]; print_r($passes); ?>
ну так регулярное выражение возвращает масив. Вся строка это 0 значения масива, а первые скобки это 1 элемент. тоесть надо типа: echo $matches[1][0].':'.$matches[2][0] ----------------- ПС:Макро обогнал на 2 минуты
вывод: Как убрать вывод замечания и мне не нужен логин, т.е "davidecao" UP осталось только предупреждение...
Мой скрипт работает, т.к. проверял на своем файле Untitled.Hashes Просто возьми мой скрипт и переделай, а не свой переделай под мой Мой скрипт выводит все пароли. КОроче, я могу помочь с php если надо, пиши в асю
разбей строку по двоеточему функцией эксплод и возьми нужный элемент из массива нужен тока хеш то это [1]
PHP: <? $file=file_get_contents('Untitled.Hashes'); preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(127).'(.*)'.chr(127).chr(127).'|',$file,$matches); $passes=$matches[2]; $hashes=$matches[1]; echo('<b>Already cracked hashes:</b><br>'); foreach($hashes as $i=>$hash) { if(!empty($passes[$i])){echo($hash.':'.$passes[$i].'<br>');} } echo('<br><b>Not cracked hashes:</b><br>'); foreach($hashes as $i=>$hash) { if(empty($passes[$i])){echo($hash.'<br>');} } ?>
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...
Вот начальная наработка, смотрим очереди демонов PasswordsPro PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Web PasswordsPro by -=lebed=-</title> </head> <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> <label>Выберите тип очереди: <select name=type_hash value="<?=$query?>"> <option value="mysql.php">хэши MySQL(40bit) <option value="md5.php">хэши MD5(128bit) <option value="sha1.php"2>хэши SHA-1(160bit) <option value="mysql5.php">хэши MySQL5(160bit) </select> Тип атаки: <select name=atack> <option value=0 selected="selected">полный перебор простых паролей <option value=1>простая атака по словарям <option value=2>атака по Rainbow Tables </select> <input type="submit" value="OK"> </form> <body> <? $query = isset($_POST['type_hash']) ? $_POST['type_hash'] : ''; $atack = isset($_POST['atack']) ? $_POST['atack'] : ''; echo $query."<br>"; include "./$query"; ?> </body> </html> 1. По событию выбор типа очереди инклудится скрипт, который парсит очередь соответствующей копии демона passwordspro.exe и выводит её состояние. Выводим состояние демона (работает/не работает с очередью) 2. При выборе типа атаки и нажатии кнопки ОК работающая в данный момент копия демона останавливается, запускается выбранная (по типу атаки) Тип атаки - 0 - прогон хэшей полным перебором по набору правил. 1 - по набору словарей 2 - по набору Rainbow таблиц ЗЫ Если будет 4-8 ядерный дёдик, то можно рискнуть и не останавливать другие копии демона passwordspro.exe Управляет остановкой/запуском демонов администратор, для юзеров доступен только просмотр состояния очередей хэшей.
Запуск демона passwordspro.exe PHP: <?php $command="start /w ./passpro1/PasswordsPro.exe /auto /config:config1.ini"; exec("$command"); ?> Каждый демон со своей очередью хэшей и настройками в отдельной папке passpro1-passpro4
я тоже подобное делаю. 4-хядерный феном собираюсь брать и гонять через rainbowcrack на линуксе исходник доработаю, чтоб сея программа результат сохраняла в файл в нужном виде запуск цикла с кроном. и вот еще к примеру взять и "напрячь" md5.xek.cc в качестве предварительного анализатора =) или не полениться изучить MySQL составить свою базу "распространенных" паролей может у кого нить уже готовое есть? поделитесь. я буду очень благодарен!
Всем привет! К сожалению, давно не забегал к вам и вижу, что тут уже целая дискуссия развернулась. По параметрам в INI-файле - их названия и значения весьма непостоянны и я меняю их от версии к версии (по разным причинам - вводятся новые настройки, оптимизируются или перегруппируются старые и т.д.), так что лучше создать INI-файл "естественным" путем в текущей версии PPro, а уж затем менять в нем параметры вручную, т.е. не пытаться подсунуть программ INI-файл от ее предыдущей версии. Формат строк в *.Hashes-файлах: Username_Hash_Salt_Password_Comments_X_Y_Z где X - тип хэша (раньше был один символ, нумерация - с буквы 'A', а начиная с позавчерашнего релиза 2.4.2.0 номер хэша будет в HEX-виде от 00 до FF, т.е. от 0 до 255) Y - '1' или '0', в зав-сти от того, найден пароль или нет; Z - '1' или '0', в зав-сти от того, отмечен ли юзер галочкой или нет. В качестве разделителя используется символ с ASCII-кодом 127.
Вопрос к автору InsidePro Какая необходимость в хранении в ini-файлах абсолютных путей к файлам *.Hashes, Charset.txt ? (параметры LastFile, EditBox1) Может сделать поиск их в самом каталоге программы и не использовать абсолютный путь с буквой диска?
Ну это ясно, ну можно ведь просматривать сначала папку с программой а потом уже лезть в ini файл за абсолютными путями, если их нет на месте (в папке с программой). P.S. Дело в том, что если я ставлю относительный путь для них (т.е. только имя файла) программа всё равно упорно потом перезаписывает абсолютный путь к этим файлам... неудобно.
Зачем просматривать, когда можно сразу взять полное имя файла с полным путем к нему? Ставь сразу полный путь к файлу и неудобств не будет...