小白解密安卓机上微信聊天记录

安卓小白,出于调研“如何迁移微信聊天记录”而去破解了一下安卓机的微信聊天记录数据库文件,这个破解方式2013年就已经有人发表了文章,有兴趣可以去网上搜一搜,这篇文章主要是记录学习历程以及遇到的问题。

具体过程

1.聊天记录信息全保存在手机/data/data目录里。这个目录需要root之后,手机上才能看到此目录(但是电脑端还是不可直接查看)

2.通过adb连接手机,然后adb shell使用su权限授权/data/data 777权限,然后就可以通过电脑上的android studio里的android device monitor查看此目录结构

3.android device monitor可以选择文件并导出到电脑上,进行进一步查看
小白解密安卓机上微信聊天记录

4.微信聊天记录位置
/data/data/com.tencent.mm/MicroMsg/一串MD5 32位小写格式的文件夹/EnMicroMsg.db里
(这串MD5 32位小写格式的文件夹名是通过mm+uin然后MD5加密而成的)

5.这个EnMicroMsg.db有密码,密码是手机imei+uin 然后进行MD5的32位小写加密,并截取前7位

  • 获取 imei号: 在手机的打电话拨号盘输入*#06#获取
  • 获取 uin:

方法一:访问/data/data/com.tencent.mm/MicroMsg/*/system_config_prefs.xml,获取其中name="default_uin" value="([0-9]+)"的value字段值uin。(我用的这个,有效)
方法二:也可以打开wx.qq.com网页版,查找.wx.qq.com域的cookie,其中wxuin字段的值就是uin。(试过,密码错误,好像和正负数有关)
方法三:也可以用backup.tar里的apps/com.tencent.mm/sp/system_config_prefs.xml。

然后网上大部分说这个加密算法是不会变化的(MD5(IMEI+UIN).Substring(0, 7).toLower),因为维系为了兼容以前版本,如果数据库加密算法变动,那么老版本的用户升级到新版本,老版本的数据库解密就会失败的,也就是用户看不到以前的消息内容,那不可能的

6.一般数据库软件像navicat无法打开EnMicroMsg.db,需要专门的处理加解密的数据库软件打开,我用的大部分人推荐的sqlcipher。(这是一个开源的库,听说如果版本不同,使用正确的密码也不能打开,现在使用的是v2.1版本,可以打开

7.成功打开聊天记录信息的数据库,可以看到表结构
小白解密安卓机上微信聊天记录

8.可以去到Browse Date顶部菜单里查看数据数据:

用户基本信息——userinfo表
联系人——rcontact表
聊天记录——message表
已发视频信息——videoinfo2表
已发图片信息——imginfo2表
已发语音信息——voiceinfo2表

然后如果手机微信选择某一条信息删除,然后db就会更新为删除后的表。

参考资料:
https://www.osslab.com.tw/how...
https://articles.forensicfocu...
https://blog.csdn.net/njweiyu...

相关推荐