vx索引数据库研究

        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得加一个——找课题写论文咯!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值