Ok... à la maison maintenant.
Je ne sais pas si vous exécutez la variante unix ou autre chose... Ce n'est pas vraiment le cas mais tous ces scripts ont été exécutés sous Linux.
idevicebackup2 backup
Lecture de la sauvegarde
clone git https://github.com/PicciMario/iPhone-Backup-Analyzer-2
construire
puis modifier main.py à la ligne 1449
-database = sqlite3.connect(':memory:') # Créer un fichier de base de données en mémoire
+database = sqlite3.connect('/tmp/md.db') # Créer un fichier de base de données en mémoire
Ensuite, lancez le programme et laissez-le analyser le fichier Manifest.mbdb de la sauvegarde de l'iphone.
python2.7 main.py
analyser /tmp/md.db et extraire les noms des fichiers whatsapp et des médias
sqlite3 /tmp/md.db
SQLite version 3.8.10.2 2015-05-20 18:17:19
Saisissez ".help" pour obtenir des conseils d'utilisation.
sqlite> .mode csv
sqlite> .séparateur | \n
sqlite> .sortie fichiers2.csv
sqlite> .headers on
sqlite> select fileid,domain_type,domain,file_path,file_name from indice where domain = "net.whatsapp.WhatsApp" AND domain_type = "AppDomain" ;
sqlite> .out stdout
sqlite> .quit
copier les fichiers et corriger leurs noms (remplacer simplement par votre UUID) :
foreach i ( cat files2.csv | grep Library/Media/ | grep '""' | sed "s/|\"\".\+$//g" | cut -d "|" -f 2- | sed "s/|/\//g"
);do;mkdir -p /tmp/extracted/$i;done
foreach i ( cat files2.csv | grep Library/Media/ | grep -v '""' | sed "s/|/\//g" | sed "s/\/AppDomain/|AppDomain/"
);do;src= echo $i | cut -d "|" -f 1
;dst= echo $i | cut -d "|" -f 2 | sed "s/.$//g"
; cp -v /Path/to/iphone/backup/UUID/0ef862e6faede9b72c75b948f8b5c9663921e796/$src /tmp/extracted/$dst;done
cp 0ef862e6faede9b72c75b948f8b5c9663921e796/ec50dd986a0f35953e40f6ca9602ad78173e254f /tmp/extracted/Contacts.sqlite
cp 0ef862e6faede9b72c75b948f8b5c9663921e796/7c7fba66680ef796b916b067077cc246adacf01d /tmp/extracted/ChatStorage.sqlite
Maintenant vous avez votre média whatsapp et ChatStorage.sqlite
Sur Android, installez WhatsApp, devenez débogueur et activez le débogage usb. Configurez WhatsApp et envoyez au moins un message et cliquez sur backup dans whatsapp. Téléchargez l'ancien whatsapp et éventuellement l'actuel :
liens https://github.com/AbinashBishoyi/WhatsApp-Key-DB-Extractor-UnOfficial/
wget http://www.whatsapp.com/Android/current/WhatsApp.apk '
adb install -r -d LegacyWhatsApp.apk
C'est la seule phase où la version héritée doit être installée :
adb backup -f whatsapp.ab -noapk com.whatsapp
dd if=whatsapp.ab bs=4096 skip=24 iflag=skip_bytes | openssl zlib -d > whatsapp.tar
tar xvf whatsapp.tar apps/com.whatsapp/db/msgstore.db apps/com.whatsapp/f/key k=$(hexdump -ve '2/1 "%02x"' apps/com.whatsapp/f/key | cut -b 253-316)
Sauvegarde des messages whatsapp
adb pull /sdcard/WhatsApp/Database/msgstore.db.crypt8 msgstore.db.crypt8
décrypter :
iv=$(hexdump -n 67 -ve '2/1 "%02x"' msgstore.db.crypt8 | cut -b 103-134);dd if=msgstore.db.crypt8 bs=4096 skip=67 iflag=skip_bytes | openssl enc -aes-256-cbc -d -nosalt -bufsize 16384 -K $k -iv $iv | gunzip > msgstore.db
fusionner des bases de données ( https://gist.github.com/paracycle/6107205 ). Le script fourni ici n'est pas complet et après avoir lu de nombreux sites de criminalistique, je sais maintenant comment le modifier pour obtenir vos médias également... mais c'est un travail en cours.
Quoi qu'il en soit :
sqlite3 -init ../convert.sql ../merged.db
crypter :
dd if=msgstore.db.crypt8 iflag=count_bytes count=67 of=msgstore.db.crypt8 ; cat merged.db | gzip -5 |openssl enc -aes-256-cbc -e -nosalt -bufsize 16384 -K $k -iv $iv | dd of=msgstore.db.crypt8 bs=4096 seek=67 oflag=seek_bytes conv=notrunc
Pousser une nouvelle sauvegarde :
adb push msgstore.db.crypt8 /sdcard/WhatsApp/Databases/
Repousser la version actuelle sur Android et lancer whatsapp pour lire la sauvegarde :
adb install -r -d WhatsApp.apk