
WhatsApp .crypt12, .crypt14 और .crypt15 फ़ाइलों का प्रबंधन करें।

व्हाट्सएप और WA बिजनेस की .crypt12, .crypt14 और .crypt15 फाइलों को आसानी से डिक्रिप्ट और एन्क्रिप्ट करें! डिक्रिप्शन के लिए, आपको की फ़ाइल या 64-अक्षरों वाली लंबी कुंजी (या इसका एक स्क्रीनशॉट) की आवश्यकता है। यदि बैकअप crypt14 है तो कुंजी फ़ाइल का नाम "key" है या यदि बैकअप crypt15 (एन्क्रिप्टेड E2E बैकअप) है तो "encrypted_backup.key" है। जो लोग व्हाट्सएप फोरेंसिक के लिए अधिक पूर्ण सूट की तलाश में हैं, वे whapa. देखें।
यदि आप अपने कंप्यूटर में प्रोग्राम इंस्टॉल नहीं करना चाहते हैं, तो आप इस प्रोग्राम को गूगल कोलाब में चला सकते हैं।
यदि आप जुपिटर से परिचित हैं (यदि आप नहीं हैं तो यहां पढ़ें), तो आप प्रोग्राम के नोटबुक संस्करण का उपयोग कर सकते हैं।
आप इस स्क्रिप्ट को pip के माध्यम से एक पैकेज के रूप में इंस्टॉल कर सकते हैं। बस चलाएं:
python -m pip install wa-crypt-tools
स्थिर संस्करण के लिए और
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
विकास संस्करण के लिए।
अन्य पैकेजों के साथ विरोध से बचने के लिए आपको एक वर्चुअल वातावरण बनाना पड़ सकता है।
यदि आप बिल्कुल भी टर्मिनल का उपयोग नहीं करना चाहते हैं, तो wagui एक छोटी विंडो है जो एक
बैकअप को डिक्रिप्ट करती है: अपनी कुंजी चुनें, बैकअप चुनें, डिक्रिप्ट दबाएं।

इसे डाउनलोड करें और इस पर डबल-क्लिक करें। प्रत्येक रिलीज़ में एक स्व-निहित बिल्ड होता है जिसे किसी Python और इंस्टॉलेशन की आवश्यकता नहीं होती है:
| फ़ाइल | के लिए |
|---|---|
wagui-windows-x64.exe | विंडोज |
wagui-macos-arm64.zip | macOS (Apple सिलिकॉन) |
wagui-linux-x64 | लिनक्स (पहले chmod +x करें) |
macOS बिल्ड कोड-साइन नहीं है, इसलिए पहली बार जब आप इसे खोलेंगे तो macOS मना कर देगा: ऐप पर राइट-क्लिक करें और ओपन चुनें, फिर पुष्टि करें।
यदि आपने पहले ही pip के साथ पैकेज इंस्टॉल कर लिया है, तो वही विंडो एक कमांड दूर है:
wagui
लिनक्स पर, एक pip इंस्टॉलेशन को आपके डिस्ट्रीब्यूशन के tkinter पैकेज (python3-tk डेबियन/उबंटू पर,
python3-tkinter फेडोरा पर) की भी आवश्यकता होती है -- यह Python का हिस्सा है लेकिन अलग से पैकेज किया गया है।
डाउनलोड करने योग्य बिल्ड में यह अंतर्निहित है और इसे किसी चीज़ की आवश्यकता नहीं है।
यह विंडो डिक्रिप्शन को कवर करती है, जिसके लिए अधिकांश लोग यहां हैं। यह आपको यह भी बताती है कि
जैसे ही आप इसे चुनते हैं, कोई फ़ाइल क्या है, जैसे wainfo करता है। एन्क्रिप्टिंग, कुंजी फ़ाइलें बनाना और
ऑफसेट का अनुमान लगाना नीचे दिए गए कमांड-लाइन टूल में रहता है।
usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [-y] [keyfile] [encrypted] [decrypted]
तो, crypt12/14/15 को डिक्रिप्ट करने के लिए, हम प्रोग्राम को कुंजी फ़ाइल, एन्क्रिप्टेड फ़ाइल और आउटपुट फ़ाइल का नाम देते हैं।
यह पहले से मौजूद फ़ाइल पर नहीं लिखेगा; यदि आप ऐसा चाहते हैं तो -y/--yes पास करें।
$ wadecrypt encrypted_backup.key msgstore.db.crypt15 msgstore.db
key15.py:51 : [I] Crypt15 / Raw key loaded
wadecrypt.py:271 : [I] Done
usage: waencrypt [-h] [-f] [-y] [-v] [--enable-features [ENABLE_FEATURES ...]] [--max-feature MAX_FEATURE]
[--multi-file] [--type {12,14,15}] [--iv IV] [--reference REFERENCE] [--noparse]
[--wa-version WA_VERSION] [--jid JID] [--backup-version BACKUP_VERSION] [--no-compress]
[-c [0-9]] [keyfile] [decrypted] [encrypted]
waencrypt पहले से मौजूद फ़ाइल पर नहीं लिखेगा; यदि आप ऐसा चाहते हैं तो
-y/--yes पास करें।
--reference के साथ, waencrypt संदर्भित बैकअप को बाइट-दर-बाइट पुन: उत्पन्न करता है: IV,
हेडर (इस लाइब्रेरी द्वारा मॉडल नहीं किए गए फ़ील्ड सहित) और संपीड़न स्तर सभी इससे आते हैं,
इसलिए एक अपरिवर्तित डेटाबेस को फिर से एन्क्रिप्ट करने से आपको वही md5 वापस मिलता है जिससे आपने शुरुआत की थी।
-c/--compression-level zlib स्तर है, डिफ़ॉल्ट रूप से 9, जिसका उपयोग व्हाट्सएप अब करता है।
ऐतिहासिक रूप से यह 1 पर संपीड़ित होता था। --reference के साथ स्तर संदर्भ से लिया जाता है, इसलिए
पुराने बैकअप को पुन: उत्पन्न करने के लिए कुछ भी अतिरिक्त की आवश्यकता नहीं होती है; इसे ओवरराइड करने के लिए -c पास करें।
एन्क्रिप्शन अधिक जटिल और अप्रयुक्त है: उसी खाते से एक और एन्क्रिप्टेड फ़ाइल का उपयोग करने की सलाह दी जाती है, जिसे हम "संदर्भ" कहेंगे।
waencrypt --reference msgstore.db.crypt15 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] This script is in beta stage
waencrypt.py:89 : [I] Done!
आपको निम्नलिखित पैरामीटर प्रदान करने होंगे:
wa.db, stickers.db, WhatsApp/Backups/ का बाकी हिस्सा --
कोई भी सुविधा जानकारी नहीं रखता है, जिसका अर्थ wainfo "कोई सुविधा तालिका नहीं मिली (msgstore DB नहीं या बहुत पुराना)" से है।
उस आकार का हेडर लिखने के लिए, --enable-features को उसके बाद कुछ भी नहीं के साथ पास करें: एक खाली सूची
न तो माइग्रेशन फ़्लैग और न ही बैकअप संस्करण लिखती है, और --max-feature तब कुछ भी नहीं करता है।यदि पैरामीटर छोड़ दिए जाते हैं तो डिफ़ॉल्ट का उपयोग किया जाएगा, और वे एक वास्तविक 2.26.34.7
बैकअप से लिए गए हैं: सही --iv और --jid दिए जाने पर, waencrypt वही हेडर बाइट्स लिखता है जो
फ़ोन करता है, बिना किसी संदर्भ के। --reference पास करना अभी भी बेहतर तरीका है, क्योंकि यह IV,
संपीड़न स्तर और पूरे हेडर को आपके पास पहले से मौजूद बैकअप से लेता है।
संक्षेप में:
$ waencrypt --enable-features 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 --type 15 --wa-version 2.26.34.7 --jid 00 --backup
-version 1 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] This script is in beta stage
waencrypt.py:89 : [I] Done!
आप wainfo टूल के साथ एक बैकअप फ़ाइल के बारे में जानकारी प्राप्त कर सकते हैं।
व्हाट्सएप 64-अंकीय कुंजी एक बार दिखाता है और फिर कभी नहीं, इसलिए अधिकांश लोग इसका स्क्रीनशॉट लेते हैं। आप उस स्क्रीनशॉट को किसी भी टूल को जहां कुंजी फ़ाइल जाती है वहां दे सकते हैं -- कोई अतिरिक्त फ़्लैग नहीं है, टूल यह पता लगा लेते हैं कि उन्हें क्या दिया गया था:
$ wadecrypt Screenshot_20260901-184609_WhatsApp.png msgstore.db.crypt15 msgstore.db
ocr.py:503 : [I] Reading the key from the screenshot, this takes a few seconds...
key15.py:55 : [I] Crypt15 / Raw key loaded
wadecrypt.py:301 : [I] Done
यदि आप केवल कुंजी पढ़ना चाहते हैं तो wainfo -k <screenshot> केवल कुंजी प्रिंट करता है। wagui भी एक लेता है:
इसे वहां चुनें जहां आप कुंजी फ़ाइल चुनेंगे।
यह वैकल्पिक है और इसे दो चीजें स्थापित करने की आवश्यकता है: