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得加一个——找课题写论文咯!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)