qq-win-db-key icon indicating copy to clipboard operation
qq-win-db-key copied to clipboard

全平台 QQ 聊天数据库解密

Results 9 qq-win-db-key issues
Sort by recently updated
recently updated
newest added

这个程序除了msg3.0.db以外还能解密其他数据库吗?我想从本地数据库中获取所有好友和群列表(包括昵称、备注、账号id等),但msg.3.0中似乎没有。

enhancement
help wanted

想要解密一个几年前备份留下的Msg3.0.db,按照教程手动得到了该消息记录的账号的key替换了pcqq_rekey_to_none.cpp的313行,把Msg3.0.db和编译的a.exe丢到Bin下后运行a.exe,Msg3.0.db除了修改时间元数据变化没有任何改变(md5相同),输出如下: open iRet=0 key iRet=0 ====EXEC========= exec iRet=0 rekey iRet=26 ====END========= 我看到返回值26似乎是说被打开的文件不是一个数据库文件,这是数据库损坏了吗?为什么open,key和exec的返回值是正常的?

bug
help wanted

![截屏2023-07-21 下午7 55 41](https://github.com/Young-Lord/qq-win-db-key/assets/9078308/2dd2cdb7-5033-4159-a133-e0616b22cff0) 测试了QQ9.7.3.28946和QQ9.7.6.28997都不行,运行main.py或hook.py后都会弹出错误报告并退出qq进程。

bug
help wanted

把 [NTQQ (Android)](https://github.com/QQBackup/qq-win-db-key/blob/master/%E6%95%99%E7%A8%8B%20-%20NTQQ%20(Android).md#%E6%96%B9%E6%B3%951%E6%8E%A8%E8%8D%90) 中描述的算法具体的调用过程分析一下,最好写进文档里,方便以后更新算法时的分析

丢进`libbasic_share`里了,同时把函数的符号加了回来 需要适配一下(具体来说要在`libkernel`中找不到函数时尝试在`libbasic_share`中找,并且优先使用`findExportByName`来利用符号信息)

有了ntqq解密后的数据库,在qq目录下发现图片存储的路径 但是并不知道如何在`读取数据库`的时候找到这些图片

现在腾讯在推NT架构的QQ,要搞全平台统一,然后手机版的NT架构的QQ也开始内测了。 最新的手机版内测QQNT上的数据库架构已经大改了,变得和Windows/Mac/Linux版QQNT一样了。 版本:8.9.58.11050 如图 老版本的数据库仍然存在,但是很明显聊天记录已经不存放在老库里面了 ![image](https://user-images.githubusercontent.com/45459216/234272067-61c49d2a-d5c4-435b-a8e8-9556ba37b6d2.png) ![S30425-20053693](https://user-images.githubusercontent.com/45459216/234272746-e143560a-7020-4dae-91eb-ff7917f2b4ec.png) 现在新QQNT聊天记录数据库的位置是/databases/nt_db ![S30425-20055692](https://user-images.githubusercontent.com/45459216/234273002-4316a53c-e0bc-4ac2-afc7-03903d8cf8da.png) ![S30425-20054788](https://user-images.githubusercontent.com/45459216/234273028-b69ef736-1e93-4142-a113-172eabe0b8d8.png) 从文件名来看这个数据库架构和电脑版QQNT是一样的 ![image](https://user-images.githubusercontent.com/45459216/234273291-4e31495d-23f8-456d-a777-89b04cd885fd.png) (Windows版QQNT数据库) 目前还没研究出新数据库密钥存放的位置以及新数据库的格式 ![image](https://user-images.githubusercontent.com/45459216/234273485-6879b0c7-7b0d-4ffd-b754-b22adcf448a3.png) (从文件头来看是SQLite3?) 不知道有没有希望搞定新版的数据库解密 另:手机版QQNT内测包下载链接:https://downv6.qq.com/qqweb/QQ_1/android_apk/qq_8.9.58.11050_64.apk (就算没有内测资格也能用,在弹出内测活动已结束的窗口的时候按两下返回就可以把那个窗口关掉) (不建议用大号测试,这个内测QQNT一旦登录之后就会把所有的老库里的聊天记录全都迁移进新库,无法撤销) 另2:MacQQNT的数据库位置:/Users/{用户名}/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/nt_qq_{一串ID}/nt_db 目测数据库格式和其他平台是一样的 ![image](https://user-images.githubusercontent.com/45459216/234282732-b7063d70-2ee2-4a41-88e2-53c4c141054b.png)

Android QQ版本`v9.0.65.17370` 使用方法二,成功得到一串32位的pKey ![d68740a11614da1d602c85c12f50ac1d](https://github.com/user-attachments/assets/19fb99af-e4cd-42a3-92dc-71eff3875e7c) 并且将nt_msg.db提取到电脑上,用下图命令去除纯文本头 ![image](https://github.com/user-attachments/assets/ba61933d-ab1c-4bcb-9a71-a197a3442f84) 从纯文本头中看出,使用的HMAC加密是SHA1 ![image](https://github.com/user-attachments/assets/a382190d-1c9c-4205-bb2d-1991e340fbbb) 填入密钥对`nt_msg.clean.db`数据库文件解密,失败。 ![image](https://github.com/user-attachments/assets/03015b06-abc4-458e-aea8-3a51f893d1ea) 使用方法三,执行后自动跳转qq,几秒后跳转回终端页面,但/sdcard/0/Downloads文件夹中没有看见生成的数据库文件 ![3fab71f80e7cea571e33148c98c5f6a6](https://github.com/user-attachments/assets/799f3e7f-3ea6-4beb-977f-8ee28d73072d) 求各位大佬支招!!(滑跪