
Управление файлами WhatsApp .crypt12, .crypt14 и .crypt15.

С легкостью расшифровывайте и шифруйте файлы .crypt12, .crypt14 и .crypt15 WhatsApp и WA Business!
Для расшифровки вам НУЖЕН файл ключа или ключ длиной 64 символа.
Файл ключа называется «key», если резервная копия имеет формат crypt14, или
«encrypted_backup.key», если резервная копия имеет формат crypt15 (зашифрованные E2E-резервные копии).
Тем, кто ищет более полный набор инструментов для криминалистики WhatsApp, стоит обратить внимание на whapa.
Если вы не хотите устанавливать программы на свой компьютер, вы можете запустить эту программу в Google Colab .
Если вы знакомы с Jupyter (прочитайте здесь, если нет), вы можете использовать версию для notebook этой программы.
Вы можете установить этот скрипт как пакет через pip. Просто выполните:
python -m pip install wa-crypt-tools
для стабильной версии и
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
для версии для разработки.
Возможно, вам придётся создать виртуальное окружение, чтобы избежать конфликтов с другими пакетами.
usage: 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 / Raw key loaded
wadecrypt.py:271 : [I] Done
usage: 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]
Шифрование более сложное и непротестированное: рекомендуется использовать другой зашифрованный файл из того же аккаунта, который мы будем называть «reference».
waencrypt --reference msgstore.db.crypt15 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] This script is in beta stage
waencrypt.py:89 : [I] Done!
Вам необходимо указать следующие параметры:
Если параметры опущены, будут использоваться значения по умолчанию.
Если кратко:
$ 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] This script is in beta stage
waencrypt.py:89 : [I] Done!
Вы можете получить информацию о файле резервной копии с помощью инструмента wainfo.
Для получения справки запустите инструмент с параметром -h.
wacreatekey - Создание файлов ключейwadecrypt - Расшифровка резервных копийwaencrypt - Шифрование резервных копийwaguess - Хакерский способ попытаться расшифровать резервные копииwainfo - Получение информации о резервной копииНЕТ! Какой тогда смысл шифровать файл?
См. выше.
Ваши резервные копии повреждены. Вы можете попробовать отключить все проверки с помощью
флага -f, но ожидайте сбоев и/или нечитаемого вывода.
Ключ неверный. Вы можете попробовать отключить все проверки с помощью
флага -f, но ожидайте сбоев и/или нечитаемого вывода.
wacreatekey для создания файла encrypted_backup.keywadecrypt для расшифровки резервных копий.Таким образом вы будете управлять собственным корневым ключом — в противном случае WhatsApp может изменить ваш ключ, когда сочтёт нужным.
Нет! Пароль используется только для связи с серверами WhatsApp и получения
ключа из 64 символов.
Другими словами, пароль используется для защиты ключа, он не используется
для шифрования резервных копий.
Да, но код не документирован, поэтому сейчас, пожалуйста, читайте код.
Отправьте мне нужные файлы в Telegram, и я взгляну.
Если у вас (что вполне понятно) есть опасения по поводу конфиденциальности, откройте issue и прикрепите:
Но помочь вам будет сложнее.
На рутированном устройстве Android вы можете просто скопировать
/data/data/com.whatsapp/files/key
(или /data/data/com.whatsapp/files/encrypted_backup.key, если резервные копии имеют формат crypt15).
Если вы включили E2E-резервные копии и не использовали пароль
(у вас есть копия ключа из 64 символов, например скриншот),
вы можете просто переписать его и использовать вместо параметра файла ключа.
Существуют и другие способы, но рассказывать о них не входит в задачи этого проекта.
Issues с такими вопросами будут закрыты как недействительные.
О данном программном обеспечении не было написано статей или диссертаций, но вы можете сослаться на этот онлайн-репозиторий. Пожалуйста, не пишите «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 в папку wa-crypt-tools/proto, где находятся файлы .proto.
При необходимости замените классы protobuf и запустите protoc для генерации классов Python.
Из каталога wa-crypt-tools/proto проекта выполните:
./protoc --python_out=../src/wa_crypt_tools/proto --proto_path=. *.proto
После генерации классов Python protobuf с помощью protoc из того же каталога выполните:
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 должны быть исправлены импорты.
Огромное спасибо каждому из вас!
И всем остальным, кто помогал!