
轻松解密和加密 WhatsApp 及 WA Business 的 .crypt12、.crypt14 和 .crypt15 文件!
解密需要 密钥文件 或 64 字符长的密钥。
密钥文件在 crypt14 备份中名为 "key",在 crypt15(加密的端到端备份)中名为 "encrypted_backup.key"。
如果你在寻找更完整的 WhatsApp 取证工具套件,请查看 whapa。
如果你不想在电脑上安装程序,可以在 Google Colab 中运行此程序。
如果你熟悉 Jupyter(如果不熟悉,请阅读 此处),你可以使用该程序的 笔记本版本。
你可以通过 pip 将此脚本作为包安装。只需运行:
python -m pip install wa-crypt-tools
即可安装稳定版,或者运行
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
安装开发版。
你可能需要创建一个虚拟环境以避免与其他包冲突。
用法: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [keyfile] [encrypted] [decrypted]
因此,要解密 crypt12/14/15,我们需要提供密钥文件、加密文件以及输出文件名。
$ wadecrypt encrypted_backup.key msgstore.db.crypt15 msgstore.db
key15.py:51 : [I] 已加载 Crypt15 / 原始密钥
wadecrypt.py:271 : [I] 完成
用法: waencrypt [-h] [-f] [-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]
[keyfile] [decrypted] [encrypted]
加密过程更为复杂且未经充分测试:建议使用同一账户中的另一个已加密文件作为“参考”。
waencrypt --reference msgstore.db.crypt15 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] 此脚本处于测试阶段
waencrypt.py:89 : [I] 完成!
你需要提供以下参数:
如果省略参数,将使用默认值。
总结如下:
$ 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.1.2 --jid 00 --backup
-version 1 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] 此脚本处于测试阶段
waencrypt.py:89 : [I] 完成!
你可以使用 wainfo 工具获取备份文件的信息。
使用 -h 选项运行工具以查看用法。
wacreatekey - 创建密钥文件wadecrypt - 解密备份waencrypt - 加密备份waguess - 尝试解密备份的黑客方式wainfo - 获取备份信息不能!否则加密文件还有什么意义?
见上文。
你的备份已损坏。你可以尝试使用 -f 标志禁用所有检查,但预计会出现崩溃和/或不可读的输出。
密钥不正确。你可以尝试使用 -f 标志禁用所有检查,但预计会出现崩溃和/或不可读的输出。
wacreatekey 创建 encrypted_backup.key 文件wadecrypt 解密你的备份。这样,你将自行管理根密钥——否则 WhatsApp 可能会在适当时更改你的密钥。
不能!密码仅用于与 WhatsApp 服务器通信并检索 64 字符的密钥。
换句话说,密码用于保护密钥,而不是用于加密备份。
可以,但代码没有文档说明,所以目前请阅读代码。
请在 Telegram 上发送给我所需的文件,我会查看。
如果你(可以理解地)有隐私顾虑,请提交 issue 并附加:
但这会让我更难帮助你。
在已 root 的 Android 设备上,你可以直接复制
/data/data/com.whatsapp/files/key
(如果备份是 crypt15,则为 /data/data/com.whatsapp/files/encrypted_backup.key)。
如果你启用了端到端备份,并且没有使用密码(你有一份 64 位密钥的副本,例如截图),你可以直接抄写并用作密钥文件参数。
还有其他方法,但告知你这些方法不在本项目的范围内。
提出此类问题的 issue 将被关闭并标记为无效。
没有关于本软件的论文或论文,但你可以引用此在线仓库。 请不要使用“et al.”,因为(目前)只有一位作者。
有关引用信息,请参见 CITATION.cff 文件。
@misc{wa-crypt-tools,
author = {ElDavoo},
title = {WhatsApp Crypt Tools},
year = {2022},
month = {06},
howpublished = {\url{https://github.com/ElDavoo/wa-crypt-tools}
}
@online{wa-crypt-tools,
author = {ElDavoo},
title = {WhatsApp Crypt Tools},
year = {2022},
month = {06},
url = {https://github.com/ElDavoo/wa-crypt-tools}
}
稳定版:
2.24.16.76
测试版:
2.24.26.11
稳定版:
2.24.23.78
你可以安装 proto 可选依赖项,以使用 protoletariat 自动修复 proto 导入。
首先,克隆仓库后,在虚拟环境(建议)中进行可编辑安装,命令如下:
pip install -e .[proto]
这将同时安装包的可选依赖项。
接下来,从其仓库 此处 下载 protobuf 编译器。你可以将 protoc 程序移动到包含 .proto 文件的 wa-crypt-tools/proto 文件夹。
根据需要替换 protobuf 类,并运行 protoc 生成 python 类。在项目的 wa-crypt-tools/proto 目录下运行:
./protoc --python_out=../src/wa_crypt_tools/proto --proto_path=. *.proto
通过 protoc 生成 protobuf python 类后,在同一目录下运行:
protol --in-place --python-out ..\src\wa_crypt_tools\proto protoc --proto-path=. *.proto
Linux:
PATH="$(pwd):$PATH" protol --in-place --python-out ../src/wa_crypt_tools/proto protoc --proto-path=. *.proto
现在所有生成的 python 类都应已修复导入。
非常感谢各位!
以及其他所有提供帮助的人!