尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

QQ聊天记录数据库解密全攻略:用qq-win-db-key一键找回被锁住的聊天记录

QQ聊天记录数据库解密全攻略:用qq-win-db-key一键找回被锁住的聊天记录 QQ聊天记录数据库解密全攻略用qq-win-db-key一键找回被锁住的聊天记录【免费下载链接】qq-win-db-key全平台 QQ 聊天数据库解密项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key我上周刚把QQ升级到NT版本结果原来的聊天记录全打不开了数据库文件明明还在但任何工具都读不出来……这是很多用户在升级QQ NT版后遇到的真实困境。其实问题不在数据丢失而是QQ NT版改用SQLCipher对数据库做了加密普通的SQLite工具根本认不出这些文件。好消息是开源项目qq-win-db-key全平台 QQ 聊天数据库解密工具集提供了一套从提取密钥到打开数据库的完整方案覆盖 Windows、macOS、Linux、iOS 和 Android让你亲手拿回自己聊天记录的控制权。先别慌判断一下你属于哪种情况解密这件事90% 的步骤其实是通用的只有怎么拿到密钥这一步因平台而异。动手之前先对照下表确认自己的处境你的情况需要的工具难度Windows 上装了新版 QQ NTwindows_ntqq_get_key.ps1⭐ 最简单一键运行还在用旧版 PCQQpcqq_get_key.py⭐⭐ 需要装 Python 和 FridamacOSApple Siliconqq_key_extractor.py⭐⭐ 跟着 lldb 命令走即可Linux 桌面版 QQ NTlinux_qq_get_key.py⭐⭐⭐ 需要 gdb 环境Android 手机需 rootandroid_get_key.py⭐⭐⭐ 需要 Frida-serveriOS 越狱设备ios_get_key.js⭐⭐⭐ 需要 Frida 和越狱环境如果你只是想备份聊天记录、暂时不想折腾解密也可以先用 PCQQ 自带的导出消息记录mht 格式功能这是最保险的路径。解密原理一句话讲透你可能好奇为什么有了密钥就能打开数据库其实 QQ NT 的加密机制并不神秘拆开来看只有三层加密数据库QQ 使用 SQLCipherSQLite 的加密分支存放聊天记录没有密钥就是一堆乱码。密钥藏在进程里QQ 运行时加密密钥会作为参数传给nt_sqlite3_key_v2这个函数。项目里的脚本就是想办法偷听到这个参数。文件头干扰QQ NT 数据库文件如nt_msg.db最前面有 1024 字节的自定义文件头直接读会报错需要先切掉。所以完整流程就三步拿到密钥 → 去掉文件头 → 用 SQLCipher 参数打开。一键提取 Windows QQ NT 数据库加密密钥Windows 用户最省事。项目里的 PowerShell 脚本会自动完成三件事自动检测 QQ 安装目录、静态分析wrapper.node文件定位关键函数、启动 QQ 并用调试器截获密钥。在 PowerShell 中运行# 先给当前用户放开脚本执行权限仅当前用户安全 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # 运行脚本脚本会自动检测已安装的 QQ .\windows_ntqq_get_key.ps1运行后按提示在 QQ 窗口登录账号脚本会在断点命中时自动打印出 16 位密钥形如 找到密钥: XXXXXXXXXXXXXXXX 如果只想做静态分析、不启动 QQ 进程更安全加一个参数即可.\windows_ntqq_get_key.ps1 -NoDebugForKey脚本源码位于 scripts/windows/ntqq/windows_ntqq_get_key.ps1兼容 PowerShell 5.0 和 7.0。其他平台的最快提取方法macOSApple Silicon脚本作者已经写好了完整的 lldb 自动化流程开两个终端# 终端 A等待附加 QQ 进程 lldb -n QQ -w --one-line command script import /path/to/qq_key_extractor.py # 终端 B启动 QQ等终端 A 显示 Waiting 之后再执行 open /Applications/QQ.app回到终端 A依次执行process continue→ 等登录界面出现后按Ctrl-C→ 输入qq-setbp设置断点 → 输入c继续 → 在 QQ 点击登录密钥就会自动打印出来而且 QQ 会正常运行不受影响。LinuxLinux 版脚本scripts/linux/linux_qq_get_key.py的思路是先用readelf/objdump静态分析/opt/QQ/resources/app/wrapper.node再用 gdb 附加进程、在dlopen加载wrapper.node时下断点。脚本会输出密钥zDb并自动退出。Android 与 iOSAndroid 需要 root 设备 Frida-server运行 scripts/android/android_get_key.pyiOS 越狱设备则用 scripts/ios/ios_get_key.js 通过 Frida 注入。两者本质相同hook 住 SQLCipher 的sqlite3_key_v2调用在onEnter里把密钥参数打印出来。拿到密钥后两步打开加密数据库无论你在哪个平台拿到密钥之后的动作完全一致照着做就行。第 1 步切掉 1024 字节文件头# Linux/macOS 用 tail 直接切1025 表示从第 1025 字节开始保留 tail -c 1025 nt_msg.db nt_msg.clean.db # 或者用 Python效果相同 python -c open(nt_msg.clean.db,wb).write(open(nt_msg.db,rb).read()[1024:])第 2 步用 SQLCipher 打开替换成你自己的密钥-- 打开 sqlcipher 后逐行执行以下命令 PRAGMA key 你的16位密钥; 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; -- 验证是否成功能看到表列表就说明解密成功 .tables这几个 PRAGMA 参数是 QQ NT 版的固定配置一个都不能少顺序无所谓但参数值不要改。macOS 脚本运行时还会贴心地把这串命令直接打印在终端里复制即可。一条龙分步操作清单以 Windows 为例备份把nt_msg.db等数据库文件整体复制一份到安全位置防止操作失误。取密钥运行windows_ntqq_get_key.ps1登录 QQ 后记下打印的 16 位密钥。定位数据库在文档\Tencent Files\QQ号\nt_qq\nt_db\下找到nt_msg.db。切文件头用上面的tail或 Python 命令生成nt_msg.clean.db。配置参数安装 SQLCipher 命令行工具或 DB Browser for SQLiteSQLCipher 版。解密打开执行第 2 步的 PRAGMA 语句SELECT COUNT(*) FROM buddy_list;验证数据。导出备份解密成功后用.dump或图形界面导出为普通 SQLite / CSV永久脱离加密限制。常见问题与解决办法Q1脚本提示找不到 QQ 安装目录怎么办脚本通过注册表WOW6432Node和NTQQ两个键位自动检测安装路径。检测失败时可以手动指定.\windows_ntqq_get_key.ps1 -WrapperNodePath C:\你的路径\versions\版本号\resources\app\wrapper.node。注意 QQ 更新后版本目录名会变重新找一下即可。Q2拿到密钥后数据库还是打不开优先检查三件事① 密钥是否抄错16 位 ASCII不含空格② 文件头是否真的切干净了用十六进制编辑器确认前 4 字节是 SQLite 的SQLite format 3标记③ PRAGMA 参数是否漏了cipher_hmac_algorithm或kdf_iter。Q3脚本跑完没有输出密钥QQ 版本升级后函数签名可能变化脚本的字节码特征pattern需要更新。可以先用-NoDebugForKey做静态分析确认定位是否成功或检查是否有反调试保护。项目里的脚本都标注了适用版本升级 QQ 后建议先用旧版本测试。Q4解密后数据不完整先运行PRAGMA integrity_check;检查数据库完整性。如果是迁移后缺数据多半是源库本来就不完整比如没退 QQ 就复制文件重新从完整备份提取。Q5支持哪些 QQ 版本脚本主要面向 QQ NT 版本Windows / macOS / Linux另有独立脚本支持旧版 PCQQpcqq_get_key.py、pcqq_dump.py。Android 脚本明确支持 8.9.58 / 8.9.63 / 8.9.68 / 8.9.76 等版本。动手前必读的安全提醒这份工具集不是玩具请务必先看完这五条再操作先备份原始数据所有脚本都可能破坏数据库操作前务必备份完整副本。建议在虚拟机或不常用设备测试脚本涉及进程注入和动态调试环境越干净越好。优先选不注入进程的方式比如 Windows 的-NoDebugForKey静态分析以及 QQ 自带的 mht 导出功能风险更低。账号安全避免在主要账号上反复调试异常行为可能触发风控。审查代码再运行仓库 README 明确警告部分工具可能损坏聊天记录或导致封号使用前请自行阅读 scripts 目录下的源码确认自己理解每一步在做什么。另外iOS 脚本依赖 Frida 注入、Android 脚本依赖 root这两类操作本身就有系统级风险动手前请评估清楚。写在最后说到底这套工具解决的是同一个痛点QQ 把数据加密了而钥匙只有运行时才出现。qq-win-db-key 的价值在于把逆向分析、动态调试、解密配置这些专业活压缩成了几个可复用的脚本和一段固定命令。只要跟着本文走一遍你就能✅ 在 Windows / macOS / Linux / Android / iOS 任一平台提取 QQ 数据库加密密钥✅ 用固定的 SQLCipher 参数组合打开加密的聊天记录数据库✅ 跨平台迁移聊天记录或把数据导出为普通格式永久备份✅ 通过PRAGMA integrity_check验证修复后的数据完整性温馨提示本项目仅供学习交流和个人数据恢复使用请遵守所在地区法律法规及 QQ 软件许可及服务协议切勿用于任何商业或非法用途。数据无价动手之前先备份。【免费下载链接】qq-win-db-key全平台 QQ 聊天数据库解密项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表