Ok... en casa ahora.
No sé si ejecutas una variante de unix u otra cosa... Eso realmente no importa pero todos estos scripts se han ejecutado en Linux.
idevicebackup2 backup
Extrayendo la copia de seguridad
git clone https://github.com/PicciMario/iPhone-Backup-Analyzer-2
make build
luego modificar main.py en la línea 1449
-database = sqlite3.connect(':memory:') # Crear un archivo de base de datos en memoria
+database = sqlite3.connect('/tmp/md.db') # Crear un archivo de base de datos en memoria
luego simplemente inicie el programa y déjelo analizar Manifest.mbdb de la copia de seguridad del iphone
python2.7 main.py
analizar /tmp/md.db y extraer nombres de archivos y medios de whatsapp
sqlite3 /tmp/md.db
SQLite versión 3.8.10.2 2015-05-20 18:17:19
Ingrese ".help" para obtener indicaciones de uso.
sqlite> .mode csv
sqlite> .separator | \n
sqlite> .output files2.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
copiar archivos y corregir sus nombres (simplemente reemplace con su 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/extraído/$dst;done
cp 0ef862e6faede9b72c75b948f8b5c9663921e796/ec50dd986a0f35953e40f6ca9602ad78173e254f /tmp/extracted/Contacts.sqlite
cp 0ef862e6faede9b72c75b948f8b5c9663921e796/7c7fba66680ef796b916b067077cc246adacf01d /tmp/extracted/ChatStorage.sqlite
Ahora tienes tus medios de whatsapp y ChatStorage.sqlite
En android instalar WhatsApp, activar el modo depuración USB. Configurar WhatsApp y enviar al menos un mensaje y hacer clic en hacer una copia de seguridad en whatsapp. Descargar WhatsApp Legacy y posiblemente también la versión actual:
enlaces https://github.com/AbinashBishoyi/WhatsApp-Key-DB-Extractor-UnOfficial/
wget 'http://www.whatsapp.com/android/current/WhatsApp.apk'
adb install -r -d LegacyWhatsApp.apk
Esta es la única fase en la que la versión legacy necesita estar instalada:
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)
Obtener copia de mensajes de whatsapp
adb pull /sdcard/WhatsApp/Database/msgstore.db.crypt8 msgstore.db.crypt8
descifrar:
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
combinar bases de datos (https://gist.github.com/paracycle/6107205). El script proporcionado aquí no está completo y, tras leer múltiples páginas de investigación forense, ahora sé cómo modificarlo para obtener también tus medios... pero eso es trabajo en progreso
De todos modos:
sqlite3 -init ../convert.sql ../merged.db
cifrar:
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
Copiar la nueva copia de seguridad:
adb push msgstore.db.crypt8 /sdcard/WhatsApp/Databases/
Volver a colocar la versión actual en android y ejecutar whatsapp para leer la copia de seguridad:
adb install -r -d WhatsApp.apk