
إدارة ملفات واتساب .crypt12 و.crypt14 و.crypt15

فك تشفير وتشفير ملفات .crypt12 و.crypt14 و.crypt15 الخاصة بواتساب وواتساب للأعمال بسهولة!
لفك التشفير، تحتاج إلى ملف المفتاح أو المفتاح المكوّن من 64 حرفًا
(أو لقطة شاشة له).
يُسمّى ملف المفتاح "key" إذا كانت النسخة الاحتياطية crypt14 أو
"encrypted_backup.key" إذا كانت النسخة الاحتياطية crypt15 (نسخ احتياطية مشفّرة من الطرف إلى الطرف).
لمن يبحث عن مجموعة أدوات أكثر اكتمالًا للتحقيق الجنائي في
واتساب، راجع whapa.
إذا كنت لا ترغب في تثبيت برامج على جهاز الكمبيوتر الخاص بك، يمكنك تشغيل هذا البرنامج في Google Colab .
إذا كنت على دراية بـ Jupyter (اقرأ هنا إن لم تكن كذلك)، يمكنك استخدام نسخة الدفتر من البرنامج.
يمكنك تثبيت هذا البرنامج النصي كحزمة عبر pip. ما عليك سوى تشغيل:
python -m pip install wa-crypt-tools
للنسخة المستقرة و
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
للنسخة التطويرية.
قد تحتاج إلى إنشاء بيئة افتراضية لتجنب التعارضات مع الحزم الأخرى.
إذا كنت تفضّل عدم استخدام الطرفية على الإطلاق، فإن wagui نافذة صغيرة تفكّ تشفير
نسخة احتياطية: اختر مفتاحك، اختر النسخة الاحتياطية، اضغط Decrypt.

نزّلها وانقر عليها نقرًا مزدوجًا. كل إصدار يحمل نسخة بناء مكتفية بذاتها لا تحتاج إلى Python ولا إلى تثبيت:
| الملف | لـ |
|---|---|
wagui-windows-x64.exe | Windows |
wagui-macos-arm64.zip | macOS (Apple Silicon) |
wagui-linux-x64 | Linux (نفّذ chmod +x عليه أولًا) |
نسخة macOS غير موقّعة برمجيًا، لذا في المرة الأولى التي تفتحها سيرفضها macOS: انقر بزر الفأرة الأيمن على التطبيق واختر Open، ثم أكّد.
إذا كنت قد ثبّت الحزمة بالفعل عبر pip، فإن النافذة نفسها تبعد أمرًا واحدًا:
wagui
على Linux، يحتاج تثبيت pip أيضًا إلى حزمة tkinter الخاصة بتوزيعتك (python3-tk على
Debian/Ubuntu، وpython3-tkinter على Fedora) -- فهي جزء من 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
بعبارة "No feature table found (not a msgstore DB or very old)". لكتابة ترويسة بهذا
الشكل، مرّر --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 واحدًا
أيضًا: اختره حيث كنت ستختار ملف المفتاح.
هذا اختياري ويحتاج إلى شيئين مثبّتين:
python -m pip install 'wa-crypt-tools[ocr]'
بالإضافة إلى برنامج Tesseract نفسه -- sudo apt install tesseract-ocr على Debian/Ubuntu،
وbrew install tesseract على macOS، وwinget install UB-Mannheim.TesseractOCR على Windows.
بدونها لا يتغير أي شيء آخر؛ لن يُطلب منك تثبيتها إلا إذا مرّرت صورة.
يتحقق wadecrypt من المفتاح مقابل النسخة الاحتياطية قبل استخدامه، وإذا لم يناسبها، فإنه
يبحث بهدوء عن خطأ قريب ويكمل بالخيار الذي يعمل. أي رقم خاطئ واحد يُكتشف دائمًا. لن
يُخبرك بأي من هذا، لأنه لا يوجد شيء عليك فعله -- شغّله مع -v إذا أردت رؤيته. لا يُقبل
أي مرشّح إلا بعد أن يكون قد فكّ تشفير بداية النسخة الاحتياطية فعليًا، لذا لا شيء هنا تخمين يُستخدم.