Por fín xD
openssl enc -d -aes-192-ecb -in msgstore-1.db.crypt -out msgstore.db.sqlite -K 346a23652a46392b4d73257c67317e352e3372482177652c
Fuente:
http://www.securitybydefault.com/2012/05/descifrando-el-fichero-msgstoredbcrypt.html # check if crypted and decrypt
try:
c1.execute("SELECT * FROM chat_list")
except sqlite3.Error as msg:
print ("trying to decrypt android database...")
try:
from Crypto.Cipher import AES
c1.close()
c2.close()
code = "346a23652a46392b4d73257c67317e352e3372482177652c"
if PYTHON_VERSION == 2:
code = code.decode('hex')
elif PYTHON_VERSION == 3:
code = bytes.fromhex(code)
cipher = AES.new(code,1)
decoded = cipher.decrypt(open(options.infile,"rb").read())
decodedfile = options.infile.replace(".db.crypt","")+".plain.db"
output = open(decodedfile,"wb")
output.write(decoded)
output.close()
msgstore = sqlite3.connect(decodedfile)
msgstore.row_factory = sqlite3.Row
c1 = msgstore.cursor()
c2 = msgstore.cursor()
print ("decrypted database written to "+decodedfile)
except msg:
print('Error: {}'.format(msg))
sys.exit(1)
http://code.google.com/p/hotoloti/http://blog.digital-forensics.it/2011/12/whatsapp-xtract.html
Si la base de datos no se puede abrir, repararla
Si aparece el error
Error: file is encrypted or is not a database y ya está descifrada, intenta lo siguiente:
Abre el fichero de la base de datos con un editor y si empieza por "SQLite format 3"? La puedes reparar siguiendo los pasos:
- descarga sqlite3.exe de
http://www.sqlite.org/download.html - ejecuta whatsapp_xtract_console.bat y escribe lo siguiente:
- echo .dump | sqlite3.exe msgstore.db > Temp.sql
- echo .quit | sqlite3.exe -init Temp.sql msgstore_new.db
- python whatsapp_xtract.py -i msgstore_new.db
msgstore.db es el fichero de la base de datos que también podría ser msgstore.plain.db