Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
wa-crypt-tools — Gestire file WhatsApp .crypt12, .crypt14 e .crypt15. | Kitploit
Strumenti/GitHubGitHub/eldavoo/wa-crypt-tools
Sicurezza AndroidStrumenti di Crittografia/DecrittografiaMobile ForensicsRecupero DatiDigital ForensicsCrittografia
GitHubeldavoo/wa-crypt-tools

wa-crypt-tools

Gestire file WhatsApp .crypt12, .crypt14 e .crypt15.

Vedi Repository
1.1k15712314 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Coverage Status

WhatsApp Crypt Tools

Decifra e cifra con facilità i file .crypt12, .crypt14 e .crypt15 di WhatsApp e WA Business!
Per la decifratura, ti serve il file della chiave o la chiave lunga 64 caratteri (oppure uno screenshot della stessa).
Il file della chiave si chiama "key" se il backup è crypt14 oppure
"encrypted_backup.key" se il backup è crypt15 (backup E2E cifrati).
Coloro che cercano una suite più completa per l'analisi forense di WhatsApp, date un'occhiata a whapa.

Installazione rapida

Cloud - Google Colab

Se non vuoi installare programmi sul tuo computer, puoi eseguire questo programma in Google Colab .

Locale - Jupyter

Se hai familiarità con Jupyter (leggi qui se non ne hai), puoi usare la versione notebook del programma.

Locale - pip

Puoi installare questo script come pacchetto tramite pip. Esegui semplicemente:

python -m pip install wa-crypt-tools

per la versione stabile e

python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools

per la versione di sviluppo.

Potresti dover creare un ambiente virtuale per evitare conflitti con altri pacchetti.

La finestra: wagui

Se preferisci non usare affatto un terminale, wagui è una piccola finestra che decifra un backup: scegli la chiave, scegli il backup, premi Decifra.

La finestra wagui

Scaricala e fai doppio clic. Ogni release include una build autonoma che non richiede Python né installazione:

FilePer
wagui-windows-x64.exeWindows
wagui-macos-arm64.zipmacOS (Apple Silicon)
wagui-linux-x64Linux (prima esegui chmod +x)

La build per macOS non è firmata digitalmente, quindi la prima volta che la apri macOS la rifiuterà: fai clic con il tasto destro sull'app e scegli Apri, poi conferma.

Se hai già installato il pacchetto con pip, la stessa finestra è a un comando di distanza:

wagui

Su Linux, un'installazione con pip richiede anche il pacchetto tkinter della tua distribuzione (python3-tk su Debian/Ubuntu, python3-tkinter su Fedora) -- fa parte di Python ma è pacchettizzato separatamente. La build scaricabile lo ha integrato e non richiede nulla.

La finestra copre la decifratura, che è ciò per cui la maggior parte delle persone è qui. Ti dice anche cos'è un file non appena lo scegli, come fa wainfo. La cifratura, la creazione di file di chiave e la stima degli offset restano negli strumenti da riga di comando sottostanti.

Avvio rapido

Decifrare un file con wadecrypt

usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [-y] [keyfile] [encrypted] [decrypted]

Quindi, per decifrare un crypt12/14/15, diamo al programma il file della chiave, il file cifrato e il nome del file di output. Non sovrascriverà un file già esistente; passa -y/--yes se è quello che vuoi.

Esempio

$ wadecrypt encrypted_backup.key msgstore.db.crypt15 msgstore.db
key15.py:51     : [I] Crypt15 / Raw key loaded
wadecrypt.py:271        : [I] Done

Cifrare un file con waencrypt (BETA)

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 non sovrascriverà un file già esistente; passa -y/--yes se è quello che vuoi.

Con --reference, waencrypt riproduce il backup di riferimento byte per byte: l'IV, l' header (inclusi i campi che questa libreria non modella) e il livello di compressione provengono tutti da esso, quindi ricifrare un database non modificato ti restituisce l'md5 con cui avevi iniziato.

-c/--compression-level è il livello zlib, 9 per impostazione predefinita, che è quello che WhatsApp usa ora. Storicamente comprimeva a 1. Con --reference il livello viene preso dal riferimento, quindi riprodurre un backup più vecchio non richiede nulla in più; passa -c per sovrascriverlo.

La cifratura è più complessa e non testata: si consiglia di usare un altro file cifrato dallo stesso account, che chiameremo "riferimento".

Con un file di riferimento (testato solo database crypt15)

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!

Senza un file di riferimento

Devi fornire i seguenti parametri:

  1. La lista delle feature: Solo per database del 2019+. Questi sono in realtà i flag di migrazione del database che WhatsApp registra nell'header, e non c'è modo di inferirli da un file di database. I valori predefiniti sono quelli che porta un msgstore 2.26.34.7, cioè tutti. Solo un msgstore li ha. Ogni altro backup -- wa.db, stickers.db, il resto di WhatsApp/Backups/ -- non porta alcuna informazione sulle feature, che è ciò che wainfo intende con "No feature table found (not a msgstore DB or very old)". Per scrivere un header di quella forma, passa --enable-features senza nulla dopo: una lista vuota non scrive né i flag di migrazione né la versione del backup, e --max-feature quindi non fa nulla.
  2. Il numero massimo di feature, che al momento della scrittura è 39
  3. La versione dell'app che ha cifrato il file: predefinita a 2.26.34.7.
  4. Jid: Le ultime 2 cifre del tuo numero di telefono -- questo è davvero tuo, e il valore predefinito è 00
  5. Versione del backup: Usa 1.

I valori predefiniti verranno usati se i parametri sono omessi, e sono presi da un vero backup 2.26.34.7: dati i giusti --iv e --jid, waencrypt scrive gli stessi byte di header che scrive il telefono, senza alcun riferimento. Passare --reference è comunque il modo migliore, poiché prende l'IV, il livello di compressione e l'intero header da un backup che hai già.

Per riassumere:

$ 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!

Puoi ottenere informazioni su un file di backup con lo strumento wainfo.

Lettura della chiave da uno screenshot

WhatsApp mostra la chiave di 64 cifre una volta sola e mai più, quindi la maggior parte delle persone ne fa uno screenshot. Puoi dare quello screenshot a uno qualsiasi degli strumenti ovunque vada il file della chiave -- non c'è un flag aggiuntivo, gli strumenti capiscono cosa è stato loro passato:

$ 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
Scarica lo strumento