在网上看了好多微信数据库解密的文章,想要亲动手操作下

微信数据库加密方式:

1.获取手机IMEI码

2.获取当前登录微信账号的uin(存储在sp里面)

3.拼接IMEI和uin

4.将拼接完的字符串进行md5加密

5.截取加完密的字符串的前七位(字母必须为小写)

上面可以看到就两个变量,uinimei

uin获取

他的位置在/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml 里面有个uinz字段,直接可以获取

9f723435ly1fv8wsozm7nj20fh08tq3u.jpg

imei

  1. 可以在代码中实现获取手机IMEI。

  2. 可以直接查看DENGTA_META.xml文件中的IMEI_DENGTA的值。
    /data/data/com.tencent.mm/shared_prefs/DENGTA_META.xml
    123910orzuck0acqeezqrq 1.png

  3. 手机直接输入*#06#, 如果有多个IMEI,通常取第一个

多账户如何获取

通过搜索知道EnMicroMsg.db的父文件加密规则是 md5(mm + uin)这样就可以准确的获取到db文件的位置,每个账户的uid历史记录他是存储在app_brand_global_sp.xml.xml中的
9f723435ly1fv8wrmn2xsj20uo0d5js9.jpg
这样思路就有了,直接获取这里的uinset就可以遍历出所有的账户的db文件了。

效果如下:

9f723435ly1fv8wvm7ohaj213w061weq.jpg
9f723435ly1fv8ww2t8fxj20vd03c74g.jpg

代码送上直接开使用:https://github.com/l123456789jy/WxDatabaseDecryptKey

消息表的type分析,微信消息类型主要分为:

系统消息:1000
文本消息,包含小表情:1
图片消息,相机中的照片和配置有不同,从相册中发送的消息中会保留一个 MMAsset,如同 PAAset:3
位置消息: 48
语音消息:34
名片消息,公众号名片和普通名片用的是同一种类型:42
大表情:47
分享消息,这种消息会含有多种类型,比如分享的收藏,分享的小程序,微信红包等等。这种消息类型可以避免不断添加多种消息类型,像这种预先定义一种消息类型,预留一些字段,这样产品添加消息类型的时候,UI 可以任意组合:49

语音消息存储路径分析

通过查看表结构可以得知,语音消息的type=34,字段imagepath字段就代表该语音文件的文件名字,格式为msg_151806100918b4cf11fefe0106.amr,存储当前路径的

,改目录以用户的id为规则生成和上面数据库的名字规则一样就可以区分了,里面详细的目录

语音消息需要解除其他软件打开,我用的是楼月微信语音播放器,所以想要备份自己的语音消息,就可以读取这个文件上传了,关键是这个目录是不需要root权限的,所以你懂得,语音消息也可能被其他软件读取上传.

文章来源:https://liujingyuan.top/2018/09/14/%E5%BE%AE%E4%BF%A1%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A7%A3%E5%AF%86/
文章来源:https://www.52pojie.cn/thread-993445-1-1.html

Q.E.D.