如何从android中的whatsapp转换msgstore.db.crypt7到msgstore.db?

mah*_*hdi 4 database sqlite android

我想在Whatsapp中添加自动联系该消息给我,所以我需要访问Whatsapp的数据库以获取我的程序,但Whatsapp的数据库.db格式不正确并且.crypt7格式化,我无法使用它.我如何使用Whatsapp db或转换.crypt7.db

moo*_*moo 8

正如Ashesh所说,您可以使用XDA开发人员网站上的工具: [TOOL] Whatsapp Xtract:备份消息提取器/数据库分析器/聊天备份

或者,您可以手动执行以下操作:

WhatsApp数据库在Android设备上以未加密的方式存储在此路径中:

/data/data/com.whatsapp/databases/msgstore.db
Run Code Online (Sandbox Code Playgroud)

数据库的备份也通常在以下位置加密存储在SD卡上:

/sdcard/WhatsApp/Databases/msgstore.db.crypt7
Run Code Online (Sandbox Code Playgroud)

加密备份数据库的唯一密钥存储在此处:

/data/data/com.whatsapp/files/key
Run Code Online (Sandbox Code Playgroud)

访问/ data/data目录需要root访问权限.或者,ADB(Android Debug Bridge)可用于在设备上启动恢复后提取上述文件.

如何解密WhatsApp crypt7数据库消息:

(以下命令从linux环境运行)

  1. 提取密钥文件:/data/data/com.whatsapp/files/key
  2. 解压缩crypt7文件:/sdcard/WhatsApp/Databases/msgstore.db.crypt7
  3. 从步骤1中提取的"密钥"文件中提取解密密钥:

    • 256位AES密钥:

      hexdump -e '2/1 "%02x"' key | cut -b 253-316 > aes.txt

    • IV(初始化向量):

      hexdump -e '2/1 "%02x"' key | cut -b 221-252 > iv.txt

  4. crypt7文件中的条带标题:

    dd if=msgstore.db.crypt7 of=msgstore.db.crypt7.nohdr ibs=67 skip=1

    注意:标题剥离文件的大小(以字节为单位)必须可被16整除

  5. 解密crypt7文件:

    openssl enc -aes-256-cbc -d -nosalt -nopad -bufsize 16384 -in msgstore.db.crypt7.nohdr -K $(cat aes.txt) -iv $(cat iv.txt) > msgstore.db