QQ聊天记录修复实战指南:三步解锁加密数据库,完成跨设备迁移 📅 2026/8/19 13:42:38 QQ聊天记录修复实战指南三步解锁加密数据库完成跨设备迁移【免费下载链接】qq-win-db-key全平台 QQ 聊天数据库解密项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-keyQQ聊天记录修复是许多用户绕不开的难题系统崩溃后数据库损坏打不开、换了新电脑聊天记录无法迁移、备份文件解密失败。开源项目 qq-win-db-key 提供了一套覆盖 Windows、macOS、Linux、iOS、Android 的全平台 QQ 聊天数据库解密工具链帮你从提取密钥、移除文件头到配置 SQLCipher一步步抢救回珍贵的聊天历史。先看清全局聊天记录打不开问题到底出在哪想象一下你的聊天记录被锁在一个保险柜里柜子本身是加密的SQLCipher 加密外面还套了一层加了锁的档案袋数据库前 1024 字节的特殊文件头。普通工具根本认不出这堆数据自然打不开。所以打不开通常由三个原因叠加造成没有钥匙QQ NT 版数据库用 SQLCipher 加密必须拿到运行时加密密钥才能解锁封条没撕数据库文件最前面 1024 字节是 QQ 自定义文件头不去掉它SQLite 全家都不认识这个文件参数不对即使有钥匙SQLCipher 的页面大小、迭代次数、加密算法等参数错一个解锁依然失败。好消息是这三个问题都有成熟的解法而且只需要一条清晰的路线抢救先备份原始数据别让操作本身造成二次伤害解锁提取密钥 → 去掉文件头 → 配置 SQLCipher 参数把数据库打开迁移验证数据完整性导出或换设备继续使用。下面我们按这条路线一步一步走。第一步抢救现场先给原始数据上双保险动手之前请记住这句话一切操作的目标是让数据可读而不是让数据消失。先找到数据库文件在哪里。不同平台的存放位置不同WindowsQQ NT 版安装目录下的nt_db文件夹里通常有nt_msg.db等文件Linux一般位于~/.config/QQ目录下macOS位于应用沙盒容器目录内Android位于/data/data/com.tencent.mobileqq需 root 或系统备份导出iOS需要从 iTunes/iCloud 备份中提取。找到文件后请遵守三条抢救纪律先退出 QQ 再复制QQ 运行中文件可能被占用或处于写入状态拷贝出来的是残缺数据复制而非移动保留原始文件不动所有操作都在副本上进行再做一层保险Windows 用户可先用 PCQQ 自带的导出消息记录mht 格式功能做文本级备份这一步不涉及解密是最稳妥的兜底方案。把这层备份做完后面无论怎么折腾你的聊天记录都不会真正丢。第二步解锁保险柜三步走完 QQ NT 版数据库解密这是整个流程的核心拆成三个小步骤每一步都有对应工具。① 找回钥匙提取加密密钥钥匙藏在哪里藏在 QQ 进程的内存里。每次 QQ 启动打开数据库时都会调用一个名为nt_sqlite3_key_v2的函数把密钥传给 SQLCipher。我们要做的就是在这个瞬间把密钥截获下来。各平台的做法略有不同这里按你的设备对号入座Windows使用项目中的 PowerShell 脚本windows_ntqq_get_key.ps1。它会自动定位已安装的 QQ分析wrapper.node文件找到引用nt_sqlite3_key_v2字符串的位置然后启动调试器挂上 QQ 进程把密钥打印出来。全程基本一键完成还会顺手告诉你函数和指令的地址方便你复查Linux使用linux_qq_get_key.py脚本同样分析/opt/QQ/resources/app/wrapper.node通过readelf解析程序头与.rodata段来定位关键位置配合调试器提取密钥macOSARM 芯片scripts/macos/arm-nosip目录下提供了无需关闭 SIP 的提取工具用 LLDB 附加进程后定位nt_sqlite3_key_v2即可Android / iOS先从系统备份中把数据库文件整体导出来再用scripts/android/与scripts/ios/下的 Frida 脚本在设备上提取密钥。同一把钥匙在两端通用这正是跨平台迁移的基础。拿到手的密钥通常是一串 32 位十六进制字符请原样保存大小写都别弄错。避坑提示脚本对 QQ 版本有依赖如果提取失败先确认 QQ 版本与脚本适配情况再检查是否有反调试保护必要时换用其他逆向分析方式。② 撕掉封条移除 1024 字节文件头拿到钥匙后先别急着打开——外面那层加了锁的档案袋还挡着呢。把数据库文件前 1024 字节去掉里面的内容才露出来。Linux 或 macOS 上一条命令即可tail -c 1025 nt_msg.db nt_msg.clean.dbWindows 用户可以用 PowerShell 读取副本跳过前 1024 字节后另存为新文件。注意永远在副本上操作原始文件保持原样。③ 用对参数配置 SQLCipher 打开数据库现在钥匙有了封条撕了最后一步是告诉 SQLCipher 该怎么解密。用 DB Browser for SQLite 这类支持 SQLCipher 的工具打开数据库时需要按顺序配置以下参数PRAGMA key 你的32位密钥; PRAGMA cipher_page_size 4096; PRAGMA kdf_iter 4000; PRAGMA cipher_hmac_algorithm HMAC_SHA1; PRAGMA cipher_default_kdf_algorithm PBKDF2_HMAC_SHA512; PRAGMA cipher aes-256-cbc;这六行参数就像保险柜的开锁顺序任何一个不对柜门都纹丝不动。建议按顺序逐条执行不要跳步。到这里聊天记录应该已经能正常浏览了。如果你在 Windows 上使用旧版 PCQQ 的数据库项目scripts/windows/pcqq/下还提供了对应的密钥提取与导出工具思路完全一致。第三步迁移与验收让聊天记录在新设备复活数据库成功打开后先别急着庆祝花两分钟做一次体检-- 检查数据库完整性 PRAGMA integrity_check; -- 查看有哪些表 SELECT name FROM sqlite_master WHERE typetable;integrity_check返回ok说明数据结构完好这时候再去看消息表如buddy_list的条数确认数据量符合预期。接下来就是聊天记录跨设备迁移教程的关键环节了同一系统换电脑在旧设备上解密导出把数据文件连同密钥一起带到新设备用同样的 SQLCipher 参数重新打开即可Android 到 WindowsAndroid 上提取的密钥与数据库文件在 Windows 上用同样的解密流程打开实现移动端到桌面端的迁移iOS 到 macOSiOS 备份提取的数据库配合 iOS 脚本拿到的密钥在 macOS 上解密查看两条链路用的是同一套 SQLCipher 约定。想彻底脱离 QQ 依赖、长期保存聊天记录的话可以在解密后把关键表导出为 CSV 或 HTML 存档。文本内容导出后就不再依赖加密数据库等于给聊天记录上了第二层永久保险。救急锦囊解密不顺利时的排查清单如果在上面任何一步卡住了按这个顺序自查密钥提取失败→ 先确认 QQ 版本与脚本是否匹配再检查是否有反调试保护最后尝试换一种提取工具比如 macOS 用 LLDB 手动定位函数数据库打不开→ 对照六行 SQLCipher 参数逐条核对重点检查密钥是否完整 32 位、大小写是否正确、文件头是否去除干净打开后数据不完整→ 大概率是源文件本身就不完整回想一下是否在 QQ 运行时拷贝过数据回到第一步重新做一次干净备份迁移后乱码或报错→ 确认两端的 SQLCipher 版本和参数一致SQLCipher 3 与 4 的参数约定有差异尽量使用同一工具链。写在最后动手前的三条铁律这篇文章讲的是怎么做但比怎么做更重要的是怎么安全地做。动手前请把这三条记在心里先备份再操作。原始数据库文件、mht 导出、系统全盘备份能做的都做上在安全环境测试。优先在虚拟机或不常用的设备上验证流程避免影响日常使用的 QQ 账号仅限个人用途。本工具仅用于个人数据恢复与学习交流请遵守相关法律法规与软件服务协议。现在你只需要做一件事先完成第一步的备份然后打开终端把项目克隆到本地从与你系统对应的脚本开始尝试git clone https://gitcode.com/gh_mirrors/qq/qq-win-db-key打开脚本之前花十分钟通读一遍代码理解它做了什么、会碰哪些文件——这份谨慎就是你的聊天记录最好的保险。【免费下载链接】qq-win-db-key全平台 QQ 聊天数据库解密项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考