
बड़ी शब्दसूची से डुप्लिकेट हटाएं, बिना छांटे (डिक्शनरी-आधारित पासवर्ड क्रैकिंग के लिए)
आजकल, पासवर्ड शब्दसूची निर्माण में आमतौर पर कई डेटा स्रोतों को जोड़ना शामिल होता है।
आदर्श रूप से, सबसे संभावित पासवर्ड शब्दसूची की शुरुआत में होने चाहिए, ताकि सबसे सामान्य पासवर्ड तुरंत क्रैक हो जाएं।
मौजूदा डुप्लीकेट हटाने वाले टूल के साथ आपको चुनने के लिए मजबूर किया जाता है कि आप क्रम को संरक्षित करना पसंद करते हैं या विशाल शब्दसूचियों को संभालना।
दुर्भाग्य से, शब्दसूची निर्माण के लिए दोनों की आवश्यकता होती है
इसलिए मैंने इस विशिष्ट आवश्यकता को पूरा करने के लिए अत्यधिक अनुकूलित C में डुप्लिकट लिखा 🤓 💻
git clone https://github.com/nil0x42/duplicut # download ...
cd duplicut/ && make # compile ...
./duplicut wordlist.txt -o clean-wordlist.txt # dedupe !!!
-o, --outfile <FILE> Write result to <FILE>
-t, --threads <NUM> Max threads to use (default max)
-m, --memlimit <VALUE> Limit max used memory (default max)
-l, --line-max-size <NUM> Max line size (default 1024, max 4095)
-p, --printable Filter ascii printable lines
-c, --lowercase Convert wordlist to lowercase
-C, --uppercase Convert wordlist to uppercase
-D, --dupfile <FILE> Write dupes to <FILE> (slows down duplicut)
-h, --help Display this help and exit
-v, --version Output version information and exit
विशेषताएँ:
--line-max-size विकल्प) से फ़िल्टर करें--printable विकल्प)--dupfile विकल्प)--lowercase या --uppercase विकल्पों के साथकार्यान्वयन:
सीमाएँ:
--line-max-size 4095 से अधिक नहीं हो सकताएक uint64 हैशमैप में पंक्तियों को अनुक्रमित करने के लिए पर्याप्त है, पॉइंटर के अतिरिक्त बिट्स के भीतर size जानकारी पैक करके:

यदि पूरी फ़ाइल मेमोरी में फिट नहीं हो सकती है, तो इसे वर्चुअल चंक्स में विभाजित किया जाता है, इस प्रकार कि प्रत्येक चंक जितना संभव हो उतना RAM का उपयोग करता है।
फिर प्रत्येक चंक को हैशमैप में लोड किया जाता है, डुप्लीकेट हटाया जाता है, और बाद के चंक्स के विरुद्ध परीक्षण किया जाता है।
इस तरह, निष्पादन समय अधिकतम वें त्रिकोण संख्या तक कम हो जाता है:

यदि आपको कोई बग मिलता है, या कुछ अपेक्षित रूप से काम नहीं करता है, तो कृपया duplicut को डीबग मोड में संकलित करें और संलग्न आउटपुट के साथ एक [मुद्दा] पोस्ट करें:
# debug level can be from 1 to 4
make debug level=1
./duplicut [OPTIONS] 2>&1 | tee /tmp/duplicut-debug.log