本教程针对 QQ Windows 版(非 NT 架构),即 QQ9 以前的版本,可以在官网选择“往期怀旧版下载”下载。
警告:本文件中列出的方式风险较大,请参考项目首页的警告使用。
备份数据库!备份数据库!备份数据库!默认数据库路径为:C:\Users\<用户名>\Documents\Tencent Files\<QQ号>\Msg3.0.db
测试可用的 QQ 版本:QQ9.7.3.28.94
、QQ9.7.6 (28997)
、QQ9.7.9 (29059)
、QQ9.7.23 (29368)
,其它版本也可能可用。
如果出现异常,可以尝试消灭QQProtect
后重试:https://www.zhihu.com/question/265963430/answer/2492603110
需要 Python 以及 Frida:pip install frida
备份Msg3.0.db
-> 打开 QQ -> python pcqq_get_key.py
-> 登录 -> 得到 key
将BYTE pwdKey[16]
的下一行(也就是第 313 行)替换为你得到的 key
使用 32 位 MinGW-W64(我用的版本)编译:g++ pcqq_rekey_to_none.cpp
(记得把mingw32\bin
加到PATH
环境变量)
把a.exe
与Msg3.0.db
一起放在 QQ 安装目录的Bin
文件夹(比如C:\Program Files (x86)\Tencent\QQ\Bin\
下,运行a.exe
,运行完成后Msg3.0.db
即为解密状态。
得到的Msg3.0.db
开头有 1024 字节的扩展头,删掉。
本方法可能导致 QQ 自身的聊天记录数据库被破坏,请谨慎使用!
需要 Python 以及 Frida:pip install frida
备份Msg3.0.db
-> 打开 QQ -> python pcqq_dump.py
-> 登录 -> 得到 key,同时解密并修复后的数据库文件将自动生成在运行目录下
备份Msg3.0.db
-> 打开 QQ -> python pcqq_DANGER_rekey.py
-> 登录 -> 原始数据库被破坏 -> 解密并修复后的数据库文件将自动生成在运行目录下
qmsg_unpakcer golang 写的, 没 example, 需要手动编写一部分代码
qq_msg_decode python 重写的 qmsg_unpakcer, 带有可以直接运行的文件 不过依然遗失了一些字段
qqdb-decode 用 rust 重写的 qq_msg_decode (是这样的的, 重写套娃)
https://bbs.kanxue.com/thread-250509.htm
https://www.52pojie.cn/thread-1370802-1-1.html
https://bbs.kanxue.com/thread-266370.htm ( https://www.52pojie.cn/thread-1386731-1-1.html )
https://github.com/Mrs4s/qq-db-key-injector
https://github.com/Akegarasu/qmsg-unpacker
Q: 报错:frida.NotSupportedError: unexpectedly failed with error code: 0x00000057 (#41)
可能是由于 Windows 10 与 Frida 16.5 不兼容,可以尝试降级到 Frida 16.4.10 版本。
x64dbg hook sqlite3_key