解锁步骤
把 QQ 的加密数据库在本机转换成 QQ Tagger 能读取的副本
为什么需要这一步
QQ(NT 版)把聊天记录保存在加密的 nt_msg.db 里。浏览器读不了加密文件,也无法获取密钥,所以要先在你自己的 Windows 电脑上运行解锁工具,生成一份可读副本。整个过程只在本机进行,不联网上传任何内容。
下载解锁工具(Windows,约 3 MB)
已在 QQ 9.9.36 上验证。只支持 Windows 64 位。
操作步骤
- 安装 Python 3.14(64 位)从 python.org 下载安装,安装时勾选 Add python.exe to PATH。必须是 3.14,工具附带的解密组件只适配这个版本。
- 解压工具把下载的 zip 解压到任意文件夹,比如桌面上的
qq-tagger-unlock。 - 完全退出 QQ在任务栏右下角的托盘图标上右键,选择“退出”。只关窗口不够。
- 双击
unlock.cmd窗口会列出这台电脑上的 QQ 账号,输入你自己账号前面的序号,按回车。 - 在弹出的 QQ 里登录同一个账号工具会启动 QQ 并在登录时读取数据库密钥。读取完成后,它会自动关闭这个 QQ 进程,然后开始生成副本,大约需要几十秒。
- 选择生成的文件成功后会自动打开
data文件夹,里面有两个文件:QQ号-c2c.db:只含私聊,体积小,在 QQ Tagger 里选这个。QQ号-readable.db:完整副本(含群聊),备用。
-c2c.db,在“好友”里选会话,开始分析。 - 记住密钥(推荐)最后窗口会问“记住密钥?”,直接按回车即可。以后更新聊天记录,只需退出 QQ、双击
unlock.cmd,不用再登录。
需要知道的事
生成的副本是未加密的明文,包含你的聊天记录。不要发给别人或上传到网盘;用完可以直接删除
data 文件夹,原始 QQ 数据不受影响。- 杀毒软件报毒或拦截
- 提取密钥的脚本
get-key.ps1需要读取 QQ 进程内存,这类行为容易被杀毒软件拦截。脚本是开源的纯文本,可以先打开审阅。如果不放心,可以不运行它(见下一条)。 - 为什么第一次要登录 QQ
- QQ 不会把数据库密钥直接存在硬盘上,只有登录后打开数据库的那一刻才会用到它,工具就是在这时读取的。登录是在 QQ 官方窗口里进行的(扫码也可以),工具看不到你的密码。同一账号的密钥一般不会变,所以记住一次就够了。
- 记住的密钥存在哪里,安全吗
- 保存在工具文件夹的
keys里,用 Windows 数据保护(DPAPI)加密,只有你当前的 Windows 用户在这台电脑上能解开,拷到别处没用。但在你自己账户下运行的程序也能解开它。不想保留的话,运行python unlock.py --forget或删除keys文件夹即可。如果记住的密钥失效了,工具会自动删除它,并改回登录提取。 - 已经知道 16 位数据库密钥
- 在工具文件夹打开命令行,运行
python unlock.py,按提示输入密钥即可,不需要启动 QQ。 - 提示“仍有未合并的 WAL 日志”
- 正常打开一次 QQ,等它加载完,再从托盘完全退出,然后重试。
- 提示“可读副本已经存在”
- 要更新聊天记录,先把
data里的旧文件改名或删除,再运行一次。 - 已有完整副本,只想生成私聊副本
- 运行
python unlock.py --c2c-from data\QQ号-readable.db,不需要重新解锁。 - 未提取到密钥
- 可能是 QQ 版本更新后不再兼容。工具目前在 QQ 9.9.36-53644 上验证通过。
- Mac 或手机可以用吗
- 解锁工具只支持 Windows。生成的
-c2c.db可以拷贝到其他设备,在任何现代浏览器里打开 QQ Tagger 使用。
第三方来源与许可
密钥提取脚本来自 QQBackup/qq-win-db-key,遵循其非商用开源协议(协议全文随工具附带)。解密组件为 sqlcipher3-wheels 0.5.7。字段解析参考 nt_msg_db_util。本工具仅供个人整理自己的聊天记录,不用于商业用途。