在解决安卓 QQ 聊天记录因故乱码时,有关其加密密钥和纠错重建逻辑的新发现

※本文旨在描述笔者自己遇到的情况和一些新发现,供您作为预案参考,而非任何面向大众的方案。

现在网络上介绍安卓 QQ (手机QQ)聊天记录数据库基本情况(比如异或加密和表结构)的文章和资源已经相对很丰富了,本文就不再赘述。相关技术此前笔者也略有些了解,但没有实际复现研究细节。

直到近日,笔者因一些原因,不慎搞炸了手Q的聊天记录(历史聊天信息乱码),于是终于有机会(被迫)将这方面的技术拿出来检验是否依旧可行,并尝试用其挽回。

※ 切勿模拟复现以下描述所对应的情况,除非您知晓这其中的高风险度。数据无价,意外丢失追悔莫及。


在过程中,笔者参考历史文章公开的技术情况,基本确认了既往的技术到目前(手机 QQ 7.8)为止,依旧适用和有效,进而复现了相关操作。

由于笔者的个人情况的特殊性,在此过程中走了些苦路,不过也观察和发现了一些似乎还没有人公开发表的新技术,主要是关于安卓手机 QQ 对待聊天数据库加密密钥选取、保存和异常重建的一些基本逻辑和现象。大纲如下:


聊天数据库异或加密存在密钥文件 —— 一般情况下密钥为 IMEI 已经不是什么新闻,但因为密钥文件(手机QQ应用数据目录/f...

阅读全文>>

【SQLite】释放SQLite数据库的空闲空间

嗯,我是SQLite大白一只啦。 

今天做SQLite写入数据提速测试,测试完了后删除了测试的数据,但是一瞥眼还是看到数据库文件的文件大小大的离谱。 

于是我就想SQLite的数据库是不是不会自动缩小文件大小的 (因为我联想到某虚拟机分配虚拟硬盘大小时,虚拟硬盘文件只能扩容不能减小,用过的部分即在虚拟机中释放了但实际文件大小中依旧不变)

然后我在群中询问...

阅读全文>>

Ɣ回顶部