开篇先diss——
辣鸡微信:不给导出聊天记录的接口
辣鸡CSDN:天价下载费
辣鸡【楼月微信聊天记录导出恢复助手】、辣鸡【微信备份助手】:打着免费的旗号到处发软件教程,骗下载安装之后收钱(~200元会员费)

辣鸡软件,不要下载!不要下载!不要下载!
摘要:本文提供一种低成本导出(安卓手机)微信聊天记录到csv的解决方案,若安卓机未root需10元,若已root则需0元。同时,本文提供包括无需手动编译的sqlcipher.exe v2.1在内的所有所需软件工具的下载。本文的方法为:首先提取聊天记录数据库EnMicroMsg.db,之后使用sqlcipher对数据库进行解密,并将库中的message表导出csv。
EnMicroMsg.db是存储在安卓手机内部存储(非root无法直接访问)微信应用中的加密数据库,应为 Encrypted Micro Massage 的缩写。对于开启root后的手机,其位置位于:
/data/data/com.tencent.mm/MicroMsg/最长那个目录名/EnMicroMsg.db
对于未root用户,可通过安卓虚拟机获取EnMicroMsg.db。后续数据库解密需要虚拟机IMEI,而在VMOS pro中需花费10元开vip才可以查看IMEI(乞丐版看不了)。具体流程为:
备份真机聊天记录至电脑
开虚拟机,虚拟机中安装微信并恢复聊天记录
虚拟机开root,导出EnMicroMsg.db
数据库密码由手机设备IMEI、微信用户id uin,通过MD5加密而成。
IMEI:root用户直接使用真机IMEI,多个IMEI的话就尝试多次
uin:打开/data/data/com.tencent.mm/MicroMsg/shared_prefs/system_config_prefs.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="true"?> -<map> <boolean value="true" name="set_service"/> <boolean value="false" name="first_launch_weixin"/> <string name="builtin_short_ips">...</string> <int value="1234567890" name="default_uin"/> <int value="2" name="launch_last_status"/> <string name="support.weixin.qq.com">support.weixin.qq.com</string> <int value="-1" name="appbrand_video_player"/> <boolean value="false" name="settings_fully_exit"/> </map>
其中,1234567890即为uin。
获取IMEI与uin后,在https://md5jiami.bmcx.com/中生成数据库密码。
具体地,要加密的字符串为IMEI+uin,例如IMEI为863676041234567,uin为1234567890,则要加密的字符串为8636760412345671234567890。点击加密后,输出结果的前7为即为数据库密码。

该数据库由sqlcipher v2.1加密。sqlcipher官网为https://www.zetetic.net/sqlcipher/,社区版不要钱,需要手动编译。商业版很贵,但不需要编译。
这里直接给出编译好的版本,不要钱!(辣鸡CSDN)
链接:https://pan.baidu.com/s/1PTjaWjUm6Vzw8OqyL1bZiA
提取码:long
打开sqlcipher2.1.exe,输入上一步得到的密码,打开数据库。若有多个IMEI,则尝试多个密码。

打开后,message表里面就是聊天记录。表中一行为一条消息,createTime字段是发送消息的unix时间戳,talker字段是对话对象的微信id,isSend字段表示该条消息是否是本方发送的。sqlcipher可以直接将表导出至csv。导出后,unix时间戳字段可以通过以下公式转换为excel中的日期时间:
=TEXT((AD1/1000+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")

完。