读取微信数据库

1,获取uin和imei

我就好奇了,我们在之前的文章中了解到用户的UIN是存储在xml中的,但是你看这个工具只要导入这个目录就可以解密,也就是说他能够拿到设备imei和uin值,所以我就怀疑他读取这个目录下的几个文件来获取的,那么就一个一个排除,首先通过肉眼判断哪些文件肯定不是的,最后发现就这几个cfg文件打开是二进制文件,所以怀疑对象就在这几个文件了,因为文件不多,我们可以这么排除,就是通过逐一修改文件名,然后在用那个工具解密,如果提示错误了,那么就表示这个文件是关键的,通过最后排查,有两个文件不能修改,也就是上图中文件名后面没有11的两个,一个是systemInfo.cfgCompatibleInfo.cfg了。那么这个文件是二进制文件,怎么解密呢?这个就简单了,直接用Jadx全局搜这两个文件:

640?wx_fmt=png

运气很好,正好在第一个dex中就搜到了,点进去查看:

640?wx_fmt=png

继续点进去查看:

640?wx_fmt=png

到这里就看明白了,原来不是什么加密操作,而是序列化对象到文件中,那么想看这个文件的原始内容就简单了,我们去写一个Java程序把文件中的内容读取出来是Map结果,然后把所有的key和value打印看看结果:

640?wx_fmt=png

运行看看结果:

640?wx_fmt=png

2,根据imei+uin MD5取前7位置,这里用python获取

s = "-672215960"
#替换成自己的IMEI
c1 = "866309042607885"
m2 = hashlib.md5()
#可能出现编码问题需要转码
m2.update((c1+s).encode('utf-8'))
print(m2.hexdigest())

3,用SQLCipher查看数据库

PRAGMA key = '8a3dbce';
 PRAGMA cipher_use_hmac = off;
PRAGMA cipher_page_size = 1024;
PRAGMA kdf_iter =4000;
sqlite> .schema

4,注意

  • 第一、现在很多设备都有很多个imei值,一般是两个,所以如果一个失败了,就尝试第二个。因为你不知道微信获取的是哪个imei值

  • 第二、获取imei值我们会用简单的拨号和设置中进行查看,这里我用小米 4+6.0系统验证发现这两种方式查看的值是不一样的,而拨号的方式是正确的

  • 第三、就是有的同学imei和uin值都获取对了,但是计算MD5和全是字母小写这一点弄错了,也要注意

  • 第四、MD5后取前7位

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值