vx索引数据库研究

vx索引数据库研究,第1张

        python学习刚起步,原本想研究学习python web方向,结果遇到了一个有趣的研究——vx索引数据库研究。即通过索引库能不能找到删除的消息。

        其实网上都有教程步骤,我也是跟着大佬们的思路模仿一遍,但动手实践又是另一方面的事了,有大大小小的坑。下面讲的就是一路上遇到的问题。

1.IMEI值。我用的是雷电模拟器,虽然模拟器会提供一个随机的IMEI值,但是没用,不是我们需要的。模拟器data/data/com.tencent.mm/MicroMsg目录下的CompatibleInfo.cfg是空文件。不过通过对于反编译后的文件代码分析,如果IMEI为空的话,返回"1234567890ABCDEF"(个人理解)

2.UIN值。这个值在data/data/com.tencent.mm/shared_prefs目录下的system_config_prefs.xml和app_brand_global_sp.xml文件里找的到。

但可能会出现一个问题就是uin值可能为负的。这时候就得考虑要不要加上4294967296(最大无符号数)。需要分情况讨论。

一是解密EnMicroMsg.db这个文件时,uin保持不动,记得带上负号。

另一个是解密FTS5IndexMicroMsg_encrypt.db文件也就是索引库,负数的uin要加上4294967296

3.微信id。这个在解密后的EnMicroMsg.db后的文件里找的到。

4.密钥生成。

EnMicroMsg.db的密钥是(IMEI值加uin值)MD5计算后取前七位。

FTS5IndexMicroMsg_encrypt.db(uin值+IMEI值+微信id)MD5计算后取前七位。

5.sqlcipher工具选择。

打开EnMicroMsg.db用的工具名称是SQLite Database Browser

打开FTS5IndexMicroMsg_encrypt.db用的工具名称是DB Browser for SQLCipher。然后加密设置需要自定义。页大小为4096;KDF迭代为64000;HMAC和KDF算法都是SHA1;

遇到的坑和注意的细节大致就是这样。

这一次的探索还是十分有趣的,虽然是跟着大佬们的文章走,但是还是领略了不少解题思路风采,对于反编译出来的代码的研究虽然十分吃力,但在前人的肩膀上倒也勉强能理清思路,找到关键。


对于解密后的索引库的分析,我还是找不到被删掉的消息(瞎折腾了属于是)。不过慢慢来吧,希望删除的消息还存在着(祈祷)。

也算告一段落,重回正轨,继续探索python,近期objective得加一个——找课题写论文咯!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/797601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存