ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

14.01.2009, 00:37
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
2procedure
Вообщем я уже порядком запарился в вордлистами (сортировать, удалять повторы, склеивать и т.д.) а посути нужна всего одна хорошая утилитка!
Вообщем суть в следующем:
Имеем 1 файл (больший и основной) упорядоченного словаря (длина, символ, ну вообщем по второму варианту в твоей проге), без повторов слов (строк).
Есть втрой файл-словарь с новыми паролями, надо сделать их слияние в 1 файл (основной). Естественно он должен получится тоже без повторов и упорядоченным.
Кроме того должна быть допустима работа с большими словарями (500Мб-2,5Гб.) ну это скорее всего больше относится к 1 файлу, апгрейдим мы словарь обычно меньшими по объёму словарями. Вообщем алгоритм я попробовал реализовать на PHP, суть его будет понятна из кода и основан он на вставке данных в нужное место файла, тоже самое можно сделать и на C++ или на другом компелируемом языке, скорость работы существенно возрастёт.
Ну вообщем сам скрипт:
PHP код:
<?
// Скрипт для слияния файлов словарей
//Слияние происходит следующим образом:
//Строки (слова) из файла $f_into добавляются в соответсвующие позиции файла $f_out, повторы исключаются
//Скрипт использует только исходные файлы (не создаёт дополнительных)
//и настраеваемый буфер памяти $len_buffer (может работать с большими файлами и при маленьком кол. оперативы.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$f_into="pass.txt"; // имя внедряемого файла словаря (не обязательно сортирован)
$f_out="D:\all_pass.txt"; // имя выходного файла словаря (должен быть отсортирован)
$f_in=fopen($f_into,"r"); // открвываем файл внедряемого словаря
if (!$f_in) echo "Не найден внедряемый файл словаря.!<br>";
$f_ou=fopen($f_out,"r+"); // открвываем выходной файл словаря
if (!$f_ou) echo "Не найден выходной файл словаря!<br>";
$s1=""; // предыдущее к вставляемому слово в выходном файле
$s2=fgets($f_ou); // последующие слово после вставляемого
$s2=substr($s2, 0, strlen($s2)-2); // отрезаем два байта перевод строки и возврат каретки
$len_buffer=100000; // длинна буфера памяти в байтах
while (!feof($f_in)) // пока не достигнут конец внедряемого файла делаем
{
$s=fgets($f_in); // вставляемое слово
$s=substr($s, 0, strlen($s)-2); // режем лишнее
$fsize=filesize($f_out); // получаем начальный размер выходного файла словаря
while (!feof($f_ou)) // пока не достигнут конец выходного файла делаем
{
$s1=$s2;
$s2=fgets($f_ou);
$s2=substr($s2, 0, strlen($s2)-2);
$h=strcmp("$s1","$s"); //сравниваем всавляемое слово с предыдущим
$l=strcmp("$s","$s2"); //сравниваем всавляемое слово с последующим
if ($s1===$s) break; //если слово есть в словаре, то заканчиваем поиск мества вставки
if ($h<=-1 and $l<=-1) break; //если место вставки найдено, то заканчиваем поиск (кстати можно применить метод деления пополам)
};
if ($s1!=$s and $s!="") // если слова нет в словаре, то добавляем
{
fseek($f_ou,-strlen($s2)-2,SEEK_CUR); // смещаем указатель на начало последующего слова за $s
$tek_pos=ftell($f_ou);
//echo "[".$h."][".$s1."]<[".$s."]<br>";
//echo "[".$l."][".$s."]<[".$s2."]<br>";
echo "Текущая позиция:".$tek_pos."<br>";
echo "Проверка:".$s1."__".$s."__".$s2."<br>Длинна вставляемого слова: ".strlen($s)."<br>";
$n=floor(($fsize-$tek_pos)/$len_buffer); //вычисляем необходимое количество циклов смещения блоков
$new_tek_pos=$n*$len_buffer-2; //вычисляем позицию 1-го копируемого блока данных относительно текущего указателя
//echo "Смещение:".$new_tek_pos."<br>";
fseek($f_ou,$new_tek_pos,SEEK_CUR); //устанавливаем указатель в начало 1 блока
for ($i=$n; $i-->=0;)
{
//echo "Позиция начала копируемого блока до чтения: ".ftell($f_ou)."<br>";
$data=fread($f_ou,$len_buffer); //читаем 1 блок данных
$dseek=strlen($data); // длинна прочитанных данных.
//echo "Позиция начала копируемого блока после чтения: ".ftell($f_ou)."<br>";
//echo "Длинна прочитанных данных.:".$dseek."<br>";
fseek($f_ou,-$dseek+strlen($s)+2,SEEK_CUR); // устанавливаем указатель в начало блока со смещением на запись
//echo "Позиция начала копируемого блока перед записью: ".ftell($f_ou)."<br>";
fwrite($f_ou,$data); //пишем в файл блок со смещением.
fseek($f_ou,-strlen($data),SEEK_CUR); // устанавливаем указатель в начало блока со смещением на запись
//echo "Позиция начала копируемого блока после записи: ".ftell($f_ou)."<br>";
fseek($f_ou,-$len_buffer-strlen($s)-2,SEEK_CUR);
//echo "Число циклов сдвигов: ".$i."<br>";
}
fseek($f_ou,-strlen($s),SEEK_CUR);
echo "Позиция для вставки строки: ".ftell($f_ou)."<br>---------------------------------------<br>";
fwrite($f_ou,$s."\r\n");
fclose($f_ou); // фиксируем изменения на физическом диске
$f_ou=fopen($f_out,"r+"); // открвываем выходной файл словаря снова
}
}
fclose($f_ou); // закрываем файлы
fclose($f_in);
?>
Словари для теста:
all_pass.txt - начальный.
Код:
!
!!!
!!!!
!!!!!
!!!!!!
!!!!!!!!!!
!!!@@@###
!!!RONY!!!
!!xxx!!
!"?123qwe
!$)&!(*(
!%$#
!(*)
!041470
!2344321
!2345
!2345q
!247spyz
!@#$
!@#$%
!@#$%QWE
!@#$%QWER
!@#$%^
!@#$%^&*()_+
!@#$%q
!@#qwe
добавляемый pass.txt
Код:
!!!!!2
!!!!!5
!!yyy!!
!!!!1
Должно получится на выходе:
all_pass.txt
Код:
!
!!!
!!!!
!!!!!
!!!!!!
!!!!!!!!!!
!!!!!2
!!!!!5
!!!!1
!!!@@@###
!!!RONY!!!
!!xxx!!
!!yyy!!
!"?123qwe
!$)&!(*(
!%$#
!(*)
!041470
!2344321
!2345
!2345q
!247spyz
!@#$
!@#$%
!@#$%QWE
!@#$%QWER
!@#$%^
!@#$%^&*()_+
!@#$%q
!@#qwe
Прошу затестить на Ваших больших словарях (обратите внимание на требования к файлу all_pass.txt)
P.S. Сильно не бейте за код  Чтоб ускорить работу скрипта с большими файлами, старайтесь ставить размер буфера максимально возможным, при котором нет ошибки нехватки памяти...
P.P.S. 2Procedure, если перепишеш на С++ это дело буду очень признателен  (появился всё же  )
|
|
|

14.01.2009, 10:31
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Затестил новую версию, разок зависла на глушняк вся система (Vista) при сортировке словаря 220Мб. (ну может не в проге дело - х.е.з. повторю тест позже)
Пункт объединение словарей - не что иное как обычная склейка двух текстовых файлов. Т.е. имеем словарь1 и словарь2 отличающиеся только одним словом (т.е. в словаре1 его нет, оно есть только в словаре2). На выходе получаем словарь3, который содержит дубликаты слов+ дополнительное 1 слово. Далее надо загрузить его в программу и удалить повторы, снова сохранить! Затем снова загрузить в прогу и сделать сортировку (для удобства использования). Очень много лишних операций и данный полуавтоматический режим настоящего объединения файлов словарей неудобен. Предлагаю заменить алгоритм обычной склейки на предложенный мною (ну можно результирующий сделать отдельным выходным файлом.
Т.е. имеем в папке несколько словарей (любых). Выбираем из них наибольший по размеру, сортируем его, записываем на диск. Остальные файлы словарей интегрируем в него последовательно. Задача: на выходе в итоге получить результирующий файл словаря, не содержащий повторов и отсортированный...
UP: Прога повесила систему (Vista, 2Гб. оперативы) при удалении повторов на склееном ранее этой же прогой словаре размером ~ 500Мб.
Последний раз редактировалось -=lebed=-; 14.01.2009 в 10:58..
|
|
|

07.03.2009, 15:03
|
|
Постоянный
Регистрация: 22.11.2008
Сообщений: 395
Провел на форуме: 3987105
Репутация:
776
|
|
Программа предназначена для копирование строк с определенного символа
(То есть Вы указываете символ, а программа ищет строки начинающие на этот символ)
Например:
(Поный путь к примеру "D:\1.txt")
В основном файле(1.txt) содержаться данные:
_______________________________________________
0
1
2
3
4
43
13
658
ыро
екн
1еаис
тмоп
_______________________________________________
Вы указали символ "1", тогда в файле для сохранения (например 2.txt)
(Поный путь к примеру "D:\2.txt")
Будут данные
_______________________________________________
1
13
1еаис
_______________________________________________
Примечание:
В данной программе символ вводиться с учетом регистра.
скачать
Прошу сильно не критиковать - это моя первая программа (Возможно она и не понадобиться Вам).
P.S. Сильно не пинать. Я и сам знаю что Вы можете сделать лучше.
|
|
|

09.05.2009, 14:56
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
мощная Юзер-френдли программа для работы со словарями
*соединяет разные словари
*удаляет дубликаты
*сортирует результат по алфавиту
*может создавать упорядоченные, так же без дублей, словари из книг и любых других текстовиков.
*быстро работает: на обработку(слияние+удаление дублей+сортировку по алфавиту), к примеру, 20 мегабайтов частично-диблирующихся пасс-листов затрачивает меньше 1 минуты и требуется одно нажатие кнопки.
Ветка обсуждения и поддержки программы на хэш-крэкинге:
https://hashcracking.info/forum/view...php?f=10&t=233
Исходный код в архиве с программой.
Написана мной.
надеюсь эта тулза вполне может заслужить статус "маст хэв" для любого, кто работает с пассворд-листами.
ps. когда писал прогу почему-то не увидел данной темы  .
ps2. Поддержку больших файлов приделаю своей проге уже в следующей версии, думаю она не заставит себя долго ждать. Но если хотите добавления или изменения чего-либо уже существующего - зайдите в линк поддержки програмы и постаните. Интересные пожелания постараюсь добавить. Следующая версия, думаю, выйдет в пределах недели-двух.
Последний раз редактировалось ErrorNeo; 09.05.2009 в 16:33..
|
|
|

09.05.2009, 19:07
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
сравнил программы - на обработке(удалении дублей+сортировке по алфавиту) пасс-листов до 20Мб Powerful Password List Creator v1.0 alpha работает быстрее. На б'ольших по размеру листах в отрыв по скорости уходит "Работа со словарями" v3.0.
к различиям можно отнести:
1. разные дополнительные функции
*В РСС v3 много хотя и не особенно нужных, но таких доп-функций, которых нет в PPLC v1a.
С другой стороны PPLC v1.0a умеет создавать пасс-листы из *любых* файлов: книг, html файлов, ... да чего угодно. Хоть из *.iso образов, гг.
(кстати именно для этого она изначально и была написана)
*в PPLC есть возможность фильтровать длинну пассов в создаваемом файле не только по *либо* мин либо макс значению, но и по обоим одновремено. (напреимер можно сохранять только пассы, длиннее 7 символов но при этом короче 12). В PCC - либо то либо то. Мне показалось это нужным (для своих целей), а вот PCC v3 - наоборот этого не умеет.
2. В программах просто *диаметрально* противоположный подход к созданию интерфейса.
В PPLC v1.0a всего одна кнопка и 3 переключателя, причём уже установленные при запуске программы в значения по умолчанию.
Всё что нужно чтобы начато работать - в подпапку в директории с программой /input записать любое колличество любых файлов, с любыми именами, любыми расширениями и любым содержимым.
Далее - достаточно нажать "Старт" (вам покажут названия файлов, которые будут обработаны) - нажать Окей, и всё.
Как только в статус-баре появится "Задание выполнено" - ваш готовый обработанный пассворд-лист будет лежать в подпапке /output и называться output.txt
Интерфейс PCC v3 же.. критиковать не стану.
Скажу лишь, что для того, чтобы удалить дубликаты, а затем отсортировать по алфавиту один единственный файл 'file.txt' требуется нажать 12 кнопок и 3 раза выбрать\ввести имена файлов - причем все эти действия будут равномерно распределены по всему процессу обработки - стоит вам отвлечься на пол-минуты, и программа остановится в ожидании очередного нажатия вами "окей" (хз зачем это нужно, но я обещал, что критиковать не буду. Скорее всего РССv3 просто старается скоротать время ожидания пользователю, просто развлекая его таким образом)
xDD
===================================
итог для себя, как автора PPLC:
1. по умолчанию в Работе со Словарями отключена проверка длинны паролей, и это правильно.
надо тоже отключить по умолчанию. Обычно ей не пользуются, при этом она где-то на 15% тормозит обработку.
2. В PCC исходные файлы читаются построчно, в PPLC - посимвольно. Это "надежнее" и удобнее в реализации, но, думаю, введя построчное считывание, возможно, еще немного выиграю в скорости.
3. Касательно скорости создания больших Пассворд-листов (>20Мб), где моя программа заметно уступает по скорости PCC - можно будет судить только после реализации алгоритма кэширования, который, как я думаю, превратит функцию скорости создания пасс-листов в моей программе из ~квадратичной в линейную.
===========================
итог в целом:
ни одна из этих двух программ не способна заменить другую.
но- попробую в следующей версии(версиях) PPLC изменить это положение вещей^^
xD
с уважением, Error.
ps. "Работа со словарями" - прикольное название.
Я, если честно, тоже собираюсь написать тулзу с говорящим названием "Ходилка-бродлка", но скорее всего назову все же её Lemming (это будет i-net crawler)
Последний раз редактировалось ErrorNeo; 09.05.2009 в 19:41..
|
|
|

15.08.2009, 14:18
|
|
Новичок
Регистрация: 05.05.2009
Сообщений: 9
Провел на форуме: 4063148
Репутация:
3
|
|
перезалейте
|
|
|

31.08.2009, 02:54
|
|
Познающий
Регистрация: 03.12.2007
Сообщений: 32
Провел на форуме: 173874
Репутация:
0
|
|
файл поврежден, перезалейте
|
|
|

05.09.2009, 16:44
|
|
Постоянный
Регистрация: 22.11.2008
Сообщений: 395
Провел на форуме: 3987105
Репутация:
776
|
|
Edit Passwords List
Edit Passwords List
Программа имеет возможности:
1. Разбиение по md5 .
Словарь (Input\input.txt) разбиваеться на 16 файлов (Output\0..f)
Слова(пароли) распределяються в зависимости от их хэш-функции (по первому символу)
Это поможет экономить время в дальнешем(в случае одного хэша не придёться пробивать
по всему словарю, а только по 1/16)
Пример:
"Input\input.txt" md5 --> пароль запишеться в файл
0 cfcd208495d565ef66e7dff9f98764da с
1 c4ca4238a0b923820dcc509a6f75849b с
2 c81e728d9d4c2f636f067f89cc14862c с
3 eccbc87e4b5ce2fe28308fd9f2a7baf3 е
4 a87ff679a2f3e71d9181a67b7542122c a
5 e4da3b7fbbce2345d7772b0674a318d5 e
6 1679091c5a880faf6fb5e6087eb1b2dc 1
7 8f14e45fceea167a5a36dedd4bea2543 8
8 c9f0f895fb98ab9159f51fd0297e236d c
9 45c48cce2e2d7fbdea1afc51c7c6ad26 4
и так далее.
2. Сортировка (дубликаты не удаляет)
3. Подсчет строк
4. Комбинированный
Пример:
File-1
0
1
File-2
A
B
Output.txt
0A
0B
1A
1B
------------------------------------------------------------
скачать можно с :
1. http://depositfiles.com/files/7xcaa7emu
2. http://rapidshare.com/files/275949006/EPL.rar.html
3. http://letitbit.net/download/1712.1cb719975a2389741077b4c22/EPL.rar.html
|
|
|

22.09.2009, 13:23
|
|
Постоянный
Регистрация: 20.08.2008
Сообщений: 348
Провел на форуме: 2200171
Репутация:
270
|
|
залейте кто нить,буду благодарен
или аналог посоветуйте,словарь от 500м
|
|
|

22.09.2009, 13:47
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
http://slil.ru/28004215 тут возьми PPLC и merge_module
http://slil.ru/28004243 отсюда возьми converter, мож пригодится.
кидай словари в подпапку input, запускай PPLC, ставь цифру 1500 (если есть 750 метров свободной оперативки, если меньше то ставь меньше, если больше то побольше), прогоняй словари PPLC и потом(как отработает) запускай merge_module. (внитри будет инструкция что нажимать).
Конвертер это просто полезная утилитка
Примечание: если обрабатываешь небольшие словари(до 50-100 метров) - можешь ставить в PPLC 99999 цифру.
В этом случае кеш использоваться не будет.
Еще в PPLC нижняя опция "все символы+пробел" вылетает, добавлял на скорую руку) Так что лучше не пользуй её.
Софт мой но никак не доведу полностью до "товарного вида".
Хотя работает)
Последний раз редактировалось ErrorNeo; 22.09.2009 в 13:53..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|