最近看到有工具可以读取本地微信聊天记录,所以就学习实操一下。工具有两个,一个GUI版的,一个命令行版的,下面依次记录下使用过程或体验。
一、GUI版工具
项目地址: https://github.com/LC044/WeChatMsg
这是一款用于获取账号信息(昵称/账号/手机/邮箱/数据库密钥) 、解密数据库、查看聊天记录、备份导出聊天记录的工具。
使用时,可以下载打包好的程序,也可以自行编译源代码。如果是自行编译,可能会遇到报错(2023-12-28),这是因为 app/DataBase/output_pc.py 的第545行有一处引号错误,需要修正:
reply_content = f"{refer_msg.get('displayname')}:{refer_msg.get('content')}" if refer_msg else '未知引用'
GUI工具的使用方法网上很多,官网也有教程,这里不赘述。只说下使用体验:
1)程序界面中的密钥不能手动输入,只能通过程序读取,而读取需要微信是登录状态。所以不登录微信就无法使用;
2)在解密后读取聊天信息时,MSG.db和MediaMSG.db可能存在多个,虽然源代码中貌似已经将它们合并,但实操下来发现,对比真实的聊天记录,工具显示的信息并不全。
二、命令行版工具
项目地址: https://github.com/xaoyaoo/PyWxDump
该工具可以分步骤一条一条执行命令,也可以执行一条命令集合。下面依次实操:
1、分步执行
1.1 获取微信信息
命令格式:"C:\Users\...\wxdump.exe" info
该命令的主要目的是为了获取微信用户的key(密钥),要求微信必须是登录状态才可以。获取到key以后,可以保存下来以备后用(以后再用的时候就不必登录微信获取了)。
1.2 解密微信数据库
命令格式:"C:\Users\...\wxdump.exe" decrypt -k "密钥" -i "数据库路径(目录or文件)"
命令需要两个参数:
1)“密钥”,指的是上一步得到的key;
2)“数据库路径”,可以在“微信设置/文件管理”中进行查询。
因为有效的数据库都在 Msg 目录下,所以传参的时候建议精准到该目录,否则,它也会遍历目录下的其它文件,浪费命令执行时间。
解密后的数据库大小和原文件没什么差异,名称增加了“de_”做标识。
1.3 查看聊天记录
命令格式:"C:\Users\...\wxdump.exe" dbshow -msg "解密后的 MSG.db 的路径" -micro "解密后的 MicroMsg.db 的路径" -media "解密后的 MediaMSG.db 的路径"
命令需要三个参数:
1)解密后的 MSG.db 的路径,可能有多个,每个内容不同,一次选一个(序号和第三个参数一致);
2)解密后的 MicroMsg.db 的路径,只有一个;
3)解密后的 MediaMSG.db 的路径,可能有多个,每个内容不同,一次选一个(序号和第一个参数一致);
执行后,即可在浏览器中访问 http://127.0.0.1:5000/ 来查看聊天记录。
点击页面右上角的“导出”按钮,可以将聊天记录以html格式保存到本地。
1.4 导出聊天记录
命令格式:"C:\Users\...\wxdump.exe" export -u "微信账号" -o "导出路径" -msg "解密后的 MSG.db 的路径" -micro "解密后的 MicroMsg.db 的路径" -media "解密后的 MediaMSG.db 的路径"
执行命令后,虽然提示成功,但导出的文件大小一直为0。
2、集合指令
命令格式:"C:\Users\...\wxdump.exe" all # 获取微信信息,解密微信数据库,查看聊天记录
使用该命令等同于依次执行了:
wxdump.exe info
wxdump.exe db_path
wxdump.exe decrypt -k "密钥" -i "数据库路径(目录or文件)"
wxdump.exe dbshow -msg "解密后的 MSG.db 的路径" -micro "解密后的 MicroMsg.db 的路径" -media "解密后的 MediaMSG.db 的路径"
因为它用到了wxdump.exe info,所以只能在微信登录的情况下才能使用。
但集合指令在加载数据时,貌似只是使用的序号最大的 MSG.db 和 MediaMSG.db,所以看到的信息只是最接近当前时间的聊天记录,并不完全。