Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
duplicut — Supprimer les doublons d'une énorme liste de mots, sans la trier (pour le cassage de mots de passe basé sur un dictionnaire) | Kitploit
Outils/GitHubGitHub/nil0x42/duplicut
Utilitaires GénérauxCassage de Mots de PasseUtilitaires et Frameworks
GitHubnil0x42/duplicut

duplicut

Supprimer les doublons d'une énorme liste de mots, sans la trier (pour le cassage de mots de passe basé sur un dictionnaire)

Voir le dépôt
9809622il y a 10 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Duplicut :scissors:

Dédupliquez rapidement des listes de mots massives, sans en changer l'ordre tweet


github tests codacy code quality github codeql codecov coverage

Mentioned in awesome-pentest

Créé par nil0x42 et contributeurs


📖 Aperçu

De nos jours, la création de listes de mots de passe implique généralement la concaténation de multiples sources de données.

Idéalement, les mots de passe les plus probables devraient se trouver en début de liste, de sorte que les mots de passe les plus courants soient craqués instantanément.

Avec les outils de déduplication existants, vous êtes contraint de choisir entre conserver l'ordre OU traiter des listes de mots massives.

Malheureusement, la création d'une liste de mots nécessite les deux

J'ai donc écrit duplicut en C hautement optimisé pour répondre à ce besoin très spécifique 🤓 💻



💡 Démarrage rapide

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

🔧 Options

-o, --outfile <FILE>       Écrire le résultat dans <FILE>
-t, --threads <NUM>        Nombre max de threads (défaut max)
-m, --memlimit <VALUE>     Limiter la mémoire max utilisée (défaut max)
-l, --line-max-size <NUM>  Taille max de ligne (défaut 1024, max 4095)
-p, --printable            Filtrer les lignes imprimables ASCII
-c, --lowercase            Convertir la liste de mots en minuscules
-C, --uppercase            Convertir la liste de mots en majuscules
-D, --dupfile <FILE>       Écrire les doublons dans <FILE> (ralentit duplicut)
-h, --help                 Afficher cette aide et quitter
-v, --version              Afficher la version et quitter
  • Fonctionnalités :

    • Gère les listes de mots massives, même celles dont la taille dépasse la RAM disponible
    • Filtre les lignes par longueur maximale (option --line-max-size)
    • Exclut les lignes contenant des caractères ASCII non imprimables (option --printable)
    • Enregistre les doublons trouvés dans un autre fichier (option --dupfile)
    • Ignore la casse avec les options --lowercase ou --uppercase
    • Affiche une belle barre de progression avec ETA
  • Implémentation :

    • Écrit en pur C, conçu pour être rapide
    • Éléments de hashmap compressés sur les plateformes 64 bits
    • Prise en charge du multithreading
  • Limitations :

    • --line-max-size ne peut pas dépasser 4095

📖 Détails techniques

🔸 1- Optimisation mémoire :

Un uint64 suffit pour indexer les lignes dans la hashmap, en intégrant l'information de size dans les bits supplémentaires du pointeur :

🔸 2- Gestion des fichiers massifs :

Si le fichier entier ne tient pas en mémoire, il est divisé en morceaux virtuels, de manière à ce que chaque morceau utilise autant de RAM que possible.

Chaque morceau est ensuite chargé dans la hashmap, dédupliqué, et testé par rapport aux morceaux suivants.

De cette façon, le temps d'exécution diminue au plus au ième nombre triangulaire :

💡 Dépannage

Si vous trouvez un bug, ou si quelque chose ne fonctionne pas comme prévu, veuillez compiler duplicut en mode débogage et poster un issue avec la sortie jointe :

# debug level can be from 1 to 4
make debug level=1
./duplicut [OPTIONS] 2>&1 | tee /tmp/duplicut-debug.log
Télécharger l’outil