12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
三国霸业 战车-珍宝-觉醒-攻城掠地SF-全新玩法 免费玩新区 攻城掠地私服 进入游戏
手游私服盒子 各类免费游戏 0.1折送海量资源 各类手游私服 进入游戏
皇家MU2 《奇迹 2:传奇》韩国网禅公司《奇迹》正统续作。 3D锁视角Mmrpg 暗黑3+传奇+流放之路+奇迹 进入游戏
查看: 352|回复: 0

撬开MacQQ的本地SQLite数据库(适用于Msg3.0.db+)

[复制链接]
发表于 2022-1-28 20:27:16 | 显示全部楼层 |阅读模式
*留意 本文不允许转载。如果发现,追究侵权责任
*** 已检测到的违规转载公示:
- www.y4f.net/329368.html(12251100z,请尽快删除)

网络上关于Mac微信数据库的相关话题非常多,各路大神讨论(转载)了自己的实操履历以及心得体会。
然鹅有微信,却没有看到QQ的。(果然是QQ已颠末气了?)

首先回顾一下Mac微信的db,可以参考这篇文章https://cloud.tencent.com/developer/article/1561339。Mac微信的数据库使用SQLite3 + SQLCipher3,作者通过lldb断sqlite3_key函数的方式截取了数据库密码,再使用DB Browser for SQLite等支持SQLCipher的数据库管理工具,成功地打开了当地的数据库。

不错,那么同样的方法QQ上能不能用呢?
> 答案当然是不能,否则我还写这篇文章干嘛。

之前已经对MacQQ有比较深的了解,也用classdump等工具导出过所有header文件。可以证实MacQQ一样使用SQLite(有SqliteDatabaseHelper等class)。另外根据论文https://www.sciencedirect.com/sc ... i/S1742287619300210,Msg2.0是线上生成的key,应该可以猜测Msg3.0也是线上生成的(后来在反汇编的时候证实是)。

lldb 调试QQ


由于使用的是sqlite3,以是同样打sqlite3_key的断点,输入br set -n sqlite3_key

尝试登陆QQ

成功断在了Hummer库的sqlite3_key点上。
查看开源代码,sqlite3_key的定义是
[C++] 纯文本查看 复制代码int sqlite3_key(sqlite3 *db, const void *pKey, int nKey);
第二个参数是key,第三个函数是key的大小。
分别查看

这个就是db的key,大小16字节。

BTW,最新版的QQ数据库在 ~/Library/Containers/com.tencent.qq/Data/Documents/contents// 目次下

兴冲冲地送进DB Browser for SQLite,结果吃闭门羹。穷举了所有大概的设置,都无法打开这个文件。

有这么几种大概:
(1)是SQLCipher,但pagesize、cipher_salt、kdf_iter、cipher_kdf_algorithm等关键参数不是默认值
(2)是改动过的SQLCipher
(3)加密算法根本不是SQLCipher

* 我个人的猜测是(1)或者(2),在后续反汇编的时候,看到大部分代码都和SQLCipher一致。
反正不管怎么说,用顺手可见的工具是已经打不开了。

在断点的时候,我留意到sqlite3_key这个函数并不在QQ的binary本体里,而是在Hummer库内,那就有点方便了。
反正我的终极目的是解开这个数据库。与其去思考这些参数或者算法,找到一个符合的工具,还不如直接使用这个“弱点”,直接下手。

查看Hummer.framework的导出表,可以看到sqlite3有关的函数全部被导出了,非常好。


写一段小程序,链接Hummer.framework,同时将数据库密码置0(请勿直接在原始文件上使用。如果不慎使用了,颠倒代码重新加密。切勿打开QQ,否则会导致原先文件报废)。


运行,获得非常理想的全部OK结果。


成功打开Cache1.1.db。


要留意的是,QQ的每一个db的密码不一定全部相同。打开次序是Cache1.1.db -> Msg3.0.db(QQ.db),以此截获即可。




1/11 UPDATE: 这楼里有一个张图墙内说看不了,已经更新了
2/14 UPDATE: PC版的方法见这里 https://www.52pojie.cn/thread-1370802-1-1.html
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-11-24 10:30 , Processed in 0.062500 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表