微信聊天记录导出

news/2024/11/23 12:56:20/

本文将介绍如何将微信聊天记录导出为结构化数据

所需材料

  • 一部已经root的安卓手机
  • 带GPU的Linux电脑
    整体流程如下:

数据库文件提取

使用RE管理器,在已经root的安卓手机上,找到如下文件:/data/data/com.tencent.mm/MicroMsg/[weixin_name]/EnMicroMsg.db,(其中[weixin_name]是32位的md5值,如果它有多个值,说明这部手机上登录过多个微信号),将该文件传到电脑上。

破解密码

这个数据库文件进行了加密,密码是7位的小写字母加数字组合,有两种破解的方式

1. 计算的方式

网上有很多方法已经介绍的很详细了,即使用IMEI和微信的uid拼起来计算md5,取前7位,但是我这边测试不通过,有需要的可以参考:微信聊天记录解密并导出

2. 暴力破解方式

使用计算的方式看似比较讨巧,但是比较浪费时间,我的手机IMEI不能复制,需要截图传到QQ/微信识别文字,双卡手机还有两个IMEI,两个都试了均未成功。无意间发现网上介绍有暴力破解的方式,于是打开新世界:提取微信聊天记录。

这个工具https://github.com/whiteblackitty/SQLCipher-Password-Cracker-OpenCL可以实现使用GPU暴力破解数据库密码。

这个配置环境比较麻烦,需要Linux, Python, pip OpenCL,Cuda等等一系列操作,非常恶心。不过对于深度学习er来说,这些都是家常便饭了,直接按照readme装好环境,然后对源码做如下修改:
Lib/pbkdf2-sha1_aes-256-cbc.cl 文件的 752 行 (link) 修改为

  •  ```if(((uint)(data[5] ^ iv[5])==0x40) && ((uint)(data[6] ^ iv[6])==0x20) && ((uint)(data[7] ^ iv[7])==0```
    

运行如下命令,即可开始破解密

  • python Run.py 0

然后你就得到了7位的数据库密码
我用的2080TI显卡,亲测只用5分钟即可遍历完所有可能,实际只用2分钟破解完密码,比前面IMEI+uid计算的方式方便太多。因此,推荐Linux+GPU用户使用暴力破解的方式。

导出为结构化txt

  • 数据库解密:

在ubuntu上安装sqlcipher,目前(2021.12.24)默认安装的3.4.1版本,这个版本可以使用
sudo apt-get install sqlcipher
然后在数据库文件EnMicroMsg.db的目录下,执行如下命令:

sqlcipher EnMicroMsg.db 'PRAGMA key = "yourkey"; PRAGMA cipher_use_hmac = off; PRAGMA kdf_iter = 4000; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database");DETACH DATABASE decrypted_database;

把yourkey换成你的密码,如果有报错,说明密码不对,等待大约两分钟,即可得到解密后的数据库文件decrypted_database.db

  • 聊天记录格式化导出:
    我们使用wechat-dump提供的脚本,将聊天记录按照会话用户名/群聊名称进行整理
  • 复制项目
    git clone git@github.com:ppwwyyxx/wechat-dump.git
  • decrypted_database.db放到wechar-dump文件夹下
  • 执行解析:
    ./dump-msg.py decrypted.db output_dir

然后就可以在output_dir文件夹下看到整理后的聊天记录

其他玩法

根据生成的聊天记录,我们可以做一系列分析,包括统计分析,如词频统计,发言次数统计,发言长度统计;内容分析,如情感分析,意见挖掘,观点提取,主题抽取等;对话生成,可以训练一个略带感情的聊天机器人代替你回复老板,或者让它模仿女朋友的说话口吻跟你说晚安等等。总之,有了原始数据,我们可以为所欲为。

  • 词频统计(词云)
  • 发言统计
  • 聊天机器人

参考资料

  1. 微信聊天记录解密并导出,链接
  2. 提取微信聊天记录,链接
  3. GPU破解密码,链接
  4. wechat-dump,链接

http://www.ppmy.cn/news/520843.html

相关文章

2022最详细最快微信聊天记录备份&导出方案

12-1 在有些情况下,比如需要换电脑的时候,或者需要对某些重要的聊天对话做一些备份,就凭微信本身的功能,是不行的,微信根本不提供聊天记录导出功能。 使用本文章的方法,可以自动地导出所有人的聊天记录&a…

最详细最快微信聊天记录导出&备份方案

12-1 在有些情况下,比如需要换电脑的时候,或者需要对某些重要的聊天对话做一些备份,就凭微信本身的功能,是不行的,微信根本不提供聊天记录导出功能。 使用本文章的方法,可以自动地导出所有人的聊天记录&a…

Java中的OIO和NIO详解(含代码)

简介及示例 Java NIO(New I/O)和OIO(Old I/O)是Java提供的两种不同的I/O模型。 OIO(Old I/O)是传统的阻塞I/O模型,也称为同步I/O。在OIO模型中,每个I/O操作(如读写操作…

Python逻辑运算符及其用法

高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。Python也有类似的逻辑运算,请看下表: 表 1 Python 逻辑运算符及功能 逻辑运算符含义基…

Java 8新特性:方法引用的介绍与使用

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 什么是方法引用? 2. 方法引用的…

端午day1作业

字符设备驱动对象结构体:struct cdev 字符设备驱动对象申请空间: (1)struct cdev cdev;//直接分配一个变量空间 (2)struct cdev *cdevcdev_alloc(); struct cdev *cdev_alloc(void);//手动申请字符设备驱…

Cookie,Session,Token,JWT授权方式对比

文章目录 HTTPCookieSessionSession认证流程Session 共享方案 TokenToken认证流程 JWTJWT认证流程 HTTP HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。服务端无法确认当前访问者的身份信息&…

【Servlet学习一】认识Servlet 创建第一个Servlet项目

目录 🌟需要知道: 🌈1、Tomcat是什么? 🌈 2、Maven 🌟一、认识Servlet 🌈1、Servlet是什么? 🌈2、实现第一个Servlet项目。 🌈3、简单了解Postman工具…