基本上是网上搜来的教程,自己跟着走了一遍。原理就是导出安卓手机微信的数据库文件EnMicroMsg.db,然后获取密码(用IMEI+_auth_uin进行md5加密后,32位小写密文的前7位作为密码),用sqlitebrowser打开。

具体步骤如下:

1 登录电脑版微信,将想要导出的聊天记录备份到电脑;

2 安装MuMu模拟器、微信和RE管理器

先安装MuMu模拟器,官网:https://mumu.163.com/

在模拟器中安装微信和RE管理器

微信:https://weixin.qq.com/

RE管理器:https://www.ghxi.com/rootexplorer.html

拖动到MuMu模拟器里即可安装,其实MuMu模拟器好像自带一个RE管理器来着。

3 在模拟器中登录微信

4 用模拟器的微信扫码登录电脑端微信,将备份的聊天记录恢复到模拟器中的微信

5 打开模拟器中的RE管理器,找到两个文件:EnMicroMsg.db和auth_info_key_prefs.xml

EnMicroMsg.db的位置:/data/data/com.tencent.mm/MicroMsg/xxxx(32位字母数字)/EnMicroMsg.db

auth_info_key_prefs.xml的位置:/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml

6 把这两个文件传输到电脑

在模拟器中复制到共享文件夹,应该是:/storage/emulated/0/$MuMu12Shared

在电脑上打开共享文件夹,一般是:文档\MuMu共享文件夹

这两个路径都可以通过MuMu模拟器的“文件传输”找到。

7 计算EnMicroMsg.db的密码

打开auth_info_key_prefs.xml

里面的内容类似于

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <boolean name="auth_info_prefs_use_new_ecdh" value="true" />
    <int name="_auth_uin" value="01234560123456" />
    <boolean name="key_auth_info_prefs_created" value="true" />
    <int name="key_auth_update_version" value="01234560123456" />
    <string name="server_id">012345601234560123456</string>
    <string name="_auth_key">01234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456</string>
</map>

其中<int name="_auth_uin" value="01234560123456" />这一行的value,即01234560123456就是我们需要记下的_auth_uin。

打开md5在线加密工具:https://tool.chinaz.com/tools/md5.aspx

输入IMEI+_auth_uin,其中_auth_uin是我们刚刚记下的01234560123456,IMEI是1234567890ABCDEF。比如这次我们就输入1234567890ABCDEF01234560123456,点击“加密”,记下32位[小]的前7位,这次是0cd0b64

如果你用的是真的安卓机,或者是别的模拟器,这里的IMEI可能需要填机器的IMEI。

8 用sqlcipher工具打开数据库

sqlitebrowser的GitHub地址:https://github.com/lasting-yang/sqlitebrowser

输入第7步中记下的密码:0cd0b64