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

作者:一年又一年 分类: 📐 技术 发布时间:2019-3-9 15:10 3701 次浏览 0 条评论

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

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

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

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


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

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


聊天数据库异或加密存在密钥文件 —— 一般情况下密钥为 IMEI 已经不是什么新闻,但因为密钥文件(手机QQ应用数据目录/files/kc 文件)的存在,使得一些情况下实际运算的密钥不一定是本机 IMEI,这大概也是一些备份软件能将聊天数据备份到新手机的基础特性。


密钥竟然还可以是 MAC 地址? —— 当安卓 QQ 获取 IMEI 失败时,MAC 地址(形如 aa:bb:cc:11:22:33,字母小写)成了密钥(Android 5.1)


再谈密钥文件,笔者意外删除密钥文件,遭遇历史聊天信息乱码的趣事 —— 密钥更替,历史聊天乱码,但新同步下来的消息显示正常


旧聊天数据乱码,新聊天数据正常,何去何从?—— 火速改回原来的密钥,旧聊天数据正常,新聊天数据乱码,但手机QQ却容错失败,无声0走向清空历史数据库绝路?!


以上为大纲草稿笔者打算抽时间详实地介绍本次刺激记录,暂待他日更新完善(咕咕咕).



以下是有关安卓 QQ 聊天数据库加密技术信息的历史文章和资料,他们的分享和启发,促成了本文,尽管以如今的视角看,他们的技术内容或许已经不足为奇了.

[1] https://www.secrss.com/articles/5452

[2] https://zhuanlan.zhihu.com/p/46192877

[3] https://blog.csdn.net/jonhy_love/article/details/79766841

[4] https://bbs.pediy.com/thread-215245.htm


数据库 Android QQ 安卓 聊天记录

♥ 若您欲转载敝站的原创内容,还请您附注出处及相应链接

发表评论

* 标注的项目为必填项。

您的邮箱地址将不会在页面中公开
您的站点地址将会被检查,如被认为不适则可能被移除
Ɣ回顶部