记微信数据库解密

其实这次折腾和某乎博主目的一样,主要是想把我和她的微信聊天记录导出到文本,以后也可以拿来来看看

查过资料网上也有好几种解决方案,大概有以下几种,我就直接搬运过来了

方法1 设备imei+uin
https://www.zhihu.com/question/19924224/answer/69982884
https://zhuanlan.zhihu.com/p/28935173

方法2 解密CompatibleInfo.cfg
反序列化/data/data/com.tencent.mm/MicroMsg/CompatibleInfo.cfg 文件得到设备id
https://github.com/ppwwyyxx/wechat-dump/issues/42
https://gist.github.com/ChiChou/36556fd412a9e3216abecf06e084e4d9

方法3 利用Xposed
Hook java层openDatabase方法提取解密参数
https://github.com/adamyi/AndroidWechatSQLiteDecrypt

方法4 暴力破解,穷举密码
https://github.com/chg-hou/EnMicroMsg.db-Password-Cracker

其中方法3应该是成功率最高的,但是需要安装xposed框架

我用第一种方法,IMEI+UIN来破解数据库密码

一、准备工作

  1. Android手机,我是mokee系统,已root
  2. 安装WeChat,Root Explorer
  3. 下载数据库浏览工具“sqlcipher.exe”

二、找到微信聊天存储数据库文件”EnMicroMsg.db“

文件位置在:/data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db

三、在”CompatibleInfo.cfg“找到IMEI号

CompatibleInfo.cfg路径:
/data/data/com.tencent.mm/MicroMsg/CompatibleInfo.cfg
打开文件后,在最后面x前面的15位就是IMEI号码。

这里注意,有其它资料说使用手机”*#06#“拨号同样可以看到IMEI号。但并不是这样的,一个手机有多个IMEI,微信所使用的就在”CompatibleInfo.cfg“里可以直接找到,无需其它手段去获取。

四、获取微信uin(user information)号

uin是微信用户信息识别码,每个用户都不一样
uin在/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml 这个xml配置文件里,一共10位数

value后面就是uin

五、将IMEI+UIN进行MD5运算

使用MD5工具将IMEI和UIN进行MD5运算,将摘要取前7位小写作为解开”EnMicroMsg.db“数据库的密码

六、使用”sqlcipher.exe“将”EnMicroMsg.db“打开

通过上面IMEI+UIN MD5已经拿到数据库密码,现在用”sqlcipher.exe“打开,软件可以在网上找到,不建议使用其它数据库管理软件打开,会有问题。

七、导出数据库文件

导出数据库中的表为CSV文件就可以了,下面提供一段查询语句

select datetime(subStr(cast(m.createTime as text),1,10),'unixepoch', 'localtime') as theTime,case m.isSend when 0 then r.nickname when 1 then '我'end as person,m.content from message m inner join rcontact r on m.talker = r.username where m.type=1 and r.nickname = '玖 陆'

当中r.nickname = ’   ‘  单引号里填写对方微信昵称即可,而非wxid。数据库比较大的话查询时间比较久,耐心等待无error即可

发表评论

电子邮件地址不会被公开。 必填项已用*标注