三星手机提取微信聊天数据

三星手机提取微信聊天数据的方法,无需root。
注意,暴力破解密码需要英伟达显卡,一小时内破解,无显卡可能要两天。

1. 安装USB驱动,通过S换机助手,备份微信软件至电脑。注意,选择不加密。

三星USB驱动下载
S换机助手下载链接

2. 使用7-Zip解压提取数据库文件

找到备份路径下的 SM-G9730_20230113231240\APKFILE\com.tencent.mm.data文件,右键=>7-Zip=>打开压缩包,找到com.tencent.mm\r\MicroMsg\f5202199666edd0e02d05dfe03dc66d1\EnMicroMsg.db文件,单独复制出来。此处无法获得微信UID,毕竟备份的有所缺失,因此采用暴力破解。

3. 下载所需文件

SQLCipher-Password-Cracker 下载这个仓库,解压 SQLCipher-Password-Cracker-OpenCL-master.zip
OpenSSL 下载Win64 OpenSSL v3.0.7 EXE Win64OpenSSL-3_0_7.exe
sqlite-amalgamation 下载Source Code - sqlite-amalgamation-3400100.zip
pysqlcipher3 下载这个仓库,解压 pysqlcipher3-master.zip
sqlcipher 下载这个仓库,解压 sqlcipher-master

4 安装pysqlcipher3

1 首先需要安装python 3.7,并且安装CUDA、Cudnn。装过TensorFlow的Anaconda环境都可以。在虚拟环境内运行python -m pip install pyopencl
2 然后安装OpenSSL,注意需要将OpenSSL的dll安装到系统目录:C:\Program Files\OpenSSL-Win64
3 不要!将sqlite-amalgamation-3400100.zip内的四个文件,复制到pysqlcipher3-master\amalgamation文件夹。
应该:在sqlcipher-master目录下,打开Developer Command Prompt of Visual Studio,运行nmake /f Makefile.msc sqlite3.c,把sqlite3.csqlite3.h复制到pysqlcipher3-master\amalgamation文件夹。
4 修改 pysqlcipher3\src\python3目录下connection.h, statement.h, util.h三个文件中#include "sqlcipher\sqlite3.h"#include "sqlite3.h"
5 修改 pysqlcipher3目录下setup.py中 "openssl = os.path…"为openssl = r"C:\Program Files\OpenSSL-Win64",修改openssl_conf = os.environ.get('OPENSSL_CONF')openssl_conf = r"C:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf",修改openssl_lib_path = os.path.join(openssl, "lib")openssl_lib_path = os.path.join(openssl, "lib\VC"),修改libeay32.liblibcrypto64MD.lib, 并加入ext.extra_link_args.append("libssl64MD.lib")
6 复制C:\Program Files\OpenSSL-Win64目录下libcrypto-1_1-x64.dll 、libssl-1_1-x64.dll文件到SQLCipher-Password-Cracker-OpenCL-master
7 pysqlcipher3 目录下虚拟环境内运行 python setup.py build_amalgamation python setup.py install

5 运行破解

SQLCipher-Password-Cracker-OpenCL-master 目录下Run.py文件修改Encrypted_DB_PATH="EnMicroMsg.db",把EnMicroMsg.db复制过来。
SQLCipher-Password-Cracker-OpenCL-master 目录下虚拟环境内运行python Run.py 0
跑了两次默认参数,提示未能成功破解密码。参考其他链接,可以适当调整判定逻辑和参数:

in pbkdf2-sha1_aes-256-cbc.cl
if(((uint)(data[5] ^ iv[5])==0x40) && ((uint)(data[6] ^ iv[6])==0x20) && ((uint)(data[7] ^ iv[7])==0x20) && ((uint)(data[56] ^ iv[56])==0x00))
in Run.py
OUTER_PASS_LENGTH = 4
c.execute("PRAGMA cipher_compatibility=3;") #new
c.execute("PRAGMA cipher_hmac_algorithm=HMAC_SHA1;") #new

最后在RTX 1660Ti上Brute Try completed after a total time of 47.4 min.
三星手机提取微信聊天数据_第1张图片

7 数据库结构

使用sqlcipher.exe读取数据库,主要的表是群聊名单chatRoom,聊天记录message,联系人名单rcontact,联系人标签ContactLabel,还有一些wallet、biz、img、voice之类的。

Last 参考链接

https://zhuanlan.zhihu.com/p/123942610
https://zhuanlan.zhihu.com/p/164917107
https://www.jianshu.com/p/90224ab9cdf2
https://blog.csdn.net/muzhicihe/article/details/109902849
https://blog.csdn.net/wem603947175/article/details/103584228

你可能感兴趣的:(笔记,python)