#android #database #sqlite
#Android #База данных #sqlite
Вопрос:
Я хочу, чтобы add автоматически связывался с этим сообщением для меня в Whatsapp, поэтому мне нужен доступ к базе данных Whatsapp для моей программы, но база данных Whatsapp не в .db
формате, а в .crypt7
формате, и я не могу ее использовать. Как я могу использовать Whatsapp db или конвертировать .crypt7
в .db
?
Комментарии:
1.
but whatsapps database is not .db format
… к счастью ! Это важная функция безопасности (т. Е. Конфиденциальность ). Спросите разработчиков WhatsApp, как перепроектировать их базу данных.
Ответ №1:
Как упоминал Ашеш, вы можете использовать инструмент на веб-сайте разработчика XDA: [ИНСТРУМЕНТ] Whatsapp Xtract: средство извлечения резервных копий сообщений / Анализатор базы данных / Резервное копирование чата
В качестве альтернативы вы можете сделать это вручную следующим образом:
База данных WhatsApp хранится в незашифрованном виде по этому пути на устройстве Android:
/data/data/com.whatsapp/databases/msgstore.db
Резервные копии базы данных также хранятся в зашифрованном виде на SD-карте, как правило, в следующем месте:
/sdcard/WhatsApp/Databases/msgstore.db.crypt7
Здесь хранится уникальный ключ для зашифрованных резервных баз данных:
/data/data/com.whatsapp/files/key
Для доступа к каталогу /data/ data требуется root-доступ. В качестве альтернативы ADB (Android Debug Bridge) можно использовать для извлечения вышеуказанных файлов после загрузки в recovery на устройстве.
Как расшифровать сообщения базы данных WhatsApp crypt7:
(приведенные ниже команды выполняются из среды Linux)
- Извлеките ключевой файл: /data/data/com.whatsapp/files/key
- Извлеките файл crypt7: /sdcard/WhatsApp/Databases/msgstore.db.crypt7
-
Извлеките ключи дешифрования из файла «key», извлеченного на шаге 1:
-
256-битный ключ AES:
hexdump -e '2/1 "x"' key | cut -b 253-316 > aes.txt
-
IV (вектор инициализации):
hexdump -e '2/1 "x"' key | cut -b 221-252 > iv.txt
-
-
Заголовок полосы в файле crypt7:
dd if=msgstore.db.crypt7 of=msgstore.db.crypt7.nohdr ibs=67 skip=1
Примечание: размер файла с разделенным заголовком в байтах должен быть кратным 16
-
Расшифровать файл 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
Ответ №2:
Разработчики из XDA создали инструменты для выполнения таких операций.
Вот один (только для Windows)
Он старый, но я уверен, что там будут новые.