最近想提取微信的聊天记录做一些奇奇怪怪的事情,然而遇到了一个严重的问题,由于众所周知的原因,华为竟然关闭了root权限申请通道!这是在逼我用苹果么?手机不root和咸鱼有什么区别?然而聊天记录已经存在我手机了只好另外想办法,自己动手,丰衣足食,经过一番尝试终于绕过了。

工具

  • 支持root的模拟器,我这里用的是蓝叠,里面装好微信就行

数据导入

微信只允许一个手机客户端登陆,而直接备份需要两个手机确认,因此不能这么搞,需要通过PC端中转一下。

  • 首先登陆原手机和PC端,PC端左下角点开Backup,然后选择Backup on PC,然后在手机上确认,把你要的消息选中,稍等片刻即可。
  • 接着登陆模拟器端的微信,注意这时候PC端会被T下去,重新启动然后登陆,在模拟器上确认即可。

    不清楚具体原因,有时候登陆确认可能弹不出来,可以通过拍照然后在电脑上扫码等等方式重新扫二维码登陆,然而我这没摄像头(拔线了),多试几次就行了。

  • PC端选择Restore on phone还原消息到模拟器上即可。

数据库文件获取

这里以蓝叠为例,其他模拟器同理

  • 首先开启root权限
  • 数据库文件路径:/data/data/com.tencent.mm/MicroMsg/一大串字母数字/EnMicroMsg.db,蓝叠的共享文件夹为/sdcard/windows/BstSharedFolder,将文件复制过去。
  • 电脑上的路径为安装文件夹/Engine/ProgramData/UserData/SharedFolder,看到你复制的文件没,终于找出来了啊~真不容易。

提取数据

在这之前我们需要获取数据库密码,据先辈们的分析,密码为IMEI+UIN的md5前7位,我们需要找到这些。

IMEI

蓝叠我似乎在设置里没找到……不过可以利用这个小工具,非常简单点击复制即可。

UIN

在这个位置/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml找到default_uin,后面的数字就是了(可能为负数)

解密数据

胜利就在眼前!我们把IMEI和UIN连起来(中间没有任何分隔符),计算一下md5,取小写前7位就是密码了!
然后用这个小工具即可读取数据库(可以导出为sql方便导入其他数据库查看)

sqlcipher.zip

不要使用DB Browser for SQLite官网的版本,我试了半天可能是设置问题无法打开!

数据库说明

这个应该不属于本文内容,常用的表就是message消息和rcontact联系人,怎么操作数据就各凭本事啦~