Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/nil0x42/duplicut
Утилиты общего назначенияВзлом паролейУтилиты и фреймворки
GitHubnil0x42/duplicut

duplicut

Удаление дубликатов из ОГРОМНОГО списка слов без его сортировки (для перебора паролей на основе словарей)

Репозиторий
98096710 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Duplicut :scissors:

Быстрое удаление дубликатов из массивных списков слов без изменения порядка tweet


github tests codacy code quality

github codeql
codecov coverage

Mentioned in awesome-pentest

Создано nil0x42 и контрибьюторами


📖 Обзор

В настоящее время создание списков паролей обычно подразумевает объединение нескольких источников данных.

В идеале наиболее вероятные пароли должны находиться в начале списка, чтобы самые распространенные пароли взламывались мгновенно.

С существующими инструментами дедупликации вы вынуждены выбирать между сохранением порядка ИЛИ обработкой массивных списков.

К сожалению, создание списка требует и того, и другого

Поэтому я написал duplicut на высокооптимизированном C для решения этой очень специфической задачи 🤓 💻



💡 Быстрый старт

root@kitploit:~
git clone https://github.com/nil0x42/duplicut  # download ...
cd duplicut/ && make                           # compile ...
./duplicut wordlist.txt -o clean-wordlist.txt  # dedupe !!!

🔧 Опции

root@kitploit:~
-o, --outfile <FILE>       Записать результат в <FILE>
-t, --threads <NUM>        Максимум потоков (по умолчанию макс.)
-m, --memlimit <VALUE>     Ограничить максимальную используемую память (по умолчанию макс.)
-l, --line-max-size <NUM>  Максимальный размер строки (по умолчанию 1024, макс. 4095)
-p, --printable            Фильтровать строки только с печатными ASCII символами
-c, --lowercase            Преобразовать список в нижний регистр
-C, --uppercase            Преобразовать список в верхний регистр
-D, --dupfile <FILE>       Записать дубликаты в <FILE> (замедляет duplicut)
-h, --help                 Показать эту справку и выйти
-v, --version              Вывести информацию о версии и выйти
  • Возможности:

    • Обработка массивных списков, даже если их размер превышает доступную оперативную память
    • Фильтрация строк по максимальной длине (опция --line-max-size)
    • Фильтрация строк, содержащих непечатные ASCII символы (опция --printable)
    • Сохранение найденных дубликатов в отдельный файл (опция --dupfile)
    • Игнорирование регистра с помощью опций --lowercase или --uppercase
    • Отображение красивого прогресс-бара с оценкой времени
  • Реализация:

    • Написан на чистом C, спроектирован для высокой скорости
    • Сжатые элементы хеш-таблицы на 64-битных платформах
    • Поддержка многопоточности
  • Ограничения:

    • --line-max-size не может превышать 4095

📖 Технические детали

🔸 1- Оптимизация памяти:

uint64 достаточно для индексации строк в хеш-таблице, путем упаковки информации о размере в дополнительные биты указателя:

🔸 2- Обработка больших файлов:

Если весь файл не помещается в память, он разбивается на виртуальных фрагментов таким образом, что каждый фрагмент использует максимально возможный объем ОЗУ.

Каждый фрагмент затем загружается в хеш-таблицу, дедуплицируется и проверяется на совпадение с последующими фрагментами.

Таким образом, время выполнения снижается максимум до го треугольного числа:

💡 Устранение неполадок

Если вы нашли ошибку или что-то работает не так, как ожидалось, пожалуйста, скомпилируйте duplicut в режиме отладки и создайте issue с приложенным выводом:

root@kitploit:~
# уровень отладки может быть от 1 до 4
make debug level=1
./duplicut [ОПЦИИ] 2>&1 | tee /tmp/duplicut-debug.log
Скачать инструмент