视频教程地址
https://www.bilibili.com/video/BV1uu4y1m78m/?vd_source=4d76e1f0894dd654b34fd69919cef992
第一步 备份微信聊天记录
以小米手机(MIUI14)为例,在设置中找到我的设备,
备份与恢复,选择备份微信
第二步 将备份同步至电脑
可以使用数据线或者其他方式将微信聊天的备份文件拷贝至电脑上
第三步 解压备份文件
将备份的.bak文件后缀改为 .zip,并且使用7-zip解压(WinRAR解压的结果不全)
第四步 获取当前手机的IME号
不同品牌手机获取IME号方式不同,例如小米手机可以在设置中搜索IME来获取,
每个手机默认有两个IME号码,获取到后记录下来
第五步 获取数据库存储位置以及密码
仅可获取备份微信时登录账户的数据库密码,其他账户无法获取
运行代码后会列举出所有可能的密码,请在下一步中解密过程中使用
import re
import os
import hashlib
# 获取当前路径下的所有文件以及文件夹名称
def GetFileName(path):
dirs = os.listdir(path)
return dirs
# 计算微信数据库的密码
def calculate_md5(string):
md5_hash = hashlib.md5()
md5_hash.update(string.encode('utf-8'))
return md5_hash.hexdigest()
# 获取文件中uin,解密数据库密码的关键
def GetUin(path):
uin=""
with open(path, 'r', encoding='UTF-8') as file_obj:
lines = file_obj.readlines()
for line in lines:
if "auth_uin" in line:
uin=re.compile('(?<=value=").*?(?=")').findall(str(line))[0]
return uin
# 获取IME号,解密数据库的另一个核心参数
def GetKey(path):
if not os.path.exists("IMELists.txt"):
IMELists=["1234567890ABCDEF"]
order=1
while order==1:
order=int(input("请输入要执行的指令:\n1.手动输入IME\t2.使用默认IME并停止输入\n:"))
if order==1:
IME=str(input("请输入IME号:\n"))
IMELists.append(IME)
with open("IMELists.txt", 'a', encoding='UTF-8') as file_obj:
for IME in IMELists:
file_obj.write(IME+"\n")
lines=[]
result=[]
with open("IMELists.txt", 'r', encoding='UTF-8') as file_obj:
lines = file_obj.readlines()
for line in lines:
uin=GetUin(path)
IME=str(line).strip()
key=calculate_md5(IME+uin)
result.append(key[0:7])
return result
# 递归遍历当前目录下的所有文件和文件夹
def Visit(path):
if os.path.isdir(path):
path=path+'/'
try:
dirs=GetFileName(path)
for dir in dirs:
new_path=path+dir
Visit(new_path)
except Exception as e:
print(e)
else:
if "auth_info_key_prefs.xml" in path:
sqlkeys=GetKey(path)
for key in sqlkeys:
print("微信数据库密码可能为:", key)
if "EnMicroMsg.db"==path[-13:]:
path=str(path).replace("./","")
print("微信聊天记录存储位置为:",path)
if __name__ == '__main__':
Visit(".")
input("键入任意内容回车后结束运行!")
第六步 使用sqlcipher.exe打开数据库
数据库文件的名称为EnMicroMsg.db,在上一步运行结果中有其对应的一个或者多个相对路径,请逐个尝试
输入上一步得到的多个密码,总有一个是正确的
输入正确的密码后,会打开如下界面
聊天记录就存放在message表里面,如果你能熟练使用数据库的话,关联查询导出每个人的聊天记录就好了,更多的功能我会在下一篇文章中实现
下载链接
sqlcipher.exe在下面的链接中,请自行获取
如果没有python运行环境,或者某些库无法安装,我这里有编译好的文件
下载链接:https://www.aliyundrive.com/s/n8Sw7yd2ks4
参考链接
链接: 傻瓜教程:使用小米系列手机提取微信聊天记录并制作词云图文章来源:https://www.toymoban.com/news/detail-723145.html
链接: 手机端微信聊天记录数据库解密过程文章来源地址https://www.toymoban.com/news/detail-723145.html
到了这里,关于python解密微信聊天记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!