旧博文,搬到 csdn
原文:http://rebootcat.com/2018/03/05/export_mac_wechat/

前头的话

最近由于手机内存告急,打算对手机进行一下瘦身。其中手机微信占用了将近 5G,这个简直太可怕了,于是打算把微信聊天记录备份到电脑上。本来备份就备份了,也没啥好说的,不过突发奇想想知道 Mac Wechat 把聊天记录备份到哪了?或者说平常聊天的数据放在哪里了?能不能把这些聊天记录导出成 txt 文件呢?

于是就有了这篇文章。

导出微信聊天记录为txt

导出微信聊天记录最简单的一种方式应该是使用 itunes 对 iphone 进行不加密备份,然后找到备份文件里面的数据,据说聊天记录是以明文的方式存在 DB 中的。这种方法我没去试过,这里主要讲一下通过破解微信 DB,读取到聊天记录,然后导出聊天记录

微信数据目录

# 替换其中的 smaug 为你自己的用户名
cd /Users/smaug/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9find ./ -name "*.db"

以上目录就是微信数据存储的目录,可以看到有很多 db 文件:

.//37cc38007838aa28296af491b890575f/ChatSync/ChatSync.db
.//37cc38007838aa28296af491b890575f/Message/msg_1.db
.//37cc38007838aa28296af491b890575f/Message/msg_5.db
.//37cc38007838aa28296af491b890575f/Message/msg_4.db
.//37cc38007838aa28296af491b890575f/Message/msg_0.db
.//37cc38007838aa28296af491b890575f/Message/fts/ftsmessage.db
.//37cc38007838aa28296af491b890575f/Message/msg_7.db
.//37cc38007838aa28296af491b890575f/Message/msg_3.db
.//37cc38007838aa28296af491b890575f/Message/msg_2.db
.//37cc38007838aa28296af491b890575f/Message/msg_6.db
.//37cc38007838aa28296af491b890575f/Message/msg_9.db
.//37cc38007838aa28296af491b890575f/Message/msg_8.db
.//37cc38007838aa28296af491b890575f/Sync/openim_oplog.db

其中类似于 msg_0.db、 msg_1.db 的就是聊天记录的数据文件,只不过是加过密的数据库,没法直接看。不过好在有各路大神,可以参考文末的参考链接。

破解步骤

1.打开 Mac Wechat,但是不要登录

2.打开终端,输入命令

lldb -p $(pgrep WeChat)

lldb 是在 mac 上的一个调试工具,上面的意思是使用 lldb attach 到 WeChat 这个进程上,进行调试,回车之后进入 lldb 调试界面

3.在 lldb 调试界面输入命令

br set -n sqlite3_key

然后回车。

这时调试屏幕上可能会出现一些 error,可以暂时忽略,不用管

4.输入 c 回车

5.然后正常登录 Mac Wechat,点击登录,手机上点击允许(或者是扫码登录),不用关心此时 Mac Wechat 是否被卡住

6.接着输入命令

memory read --size 1 --format x --count 32 $rsi

回车。

读取内存中 寄存器 rsi 存储的值。大致回输出如下的字样:

其中下面的这段是我们关心的:

0x604004c346a0: 0xad 0x5c 0xff 0x0a 0x85 0xce 0x4a 0x5e
0x604004c346a8: 0x9f 0x7f 0x8a 0xd3 0xa6 0xc6 0x02 0xf3
0x604004c346b0: 0x25 0x02 0xb1 0x48 0x4c 0x76 0x4c 0x84
0x604004c346b8: 0x82 0x38 0xc3 0x17 0x4d 0x27 0x14 0x33

把前面 0x604004c346b0: 去掉,同时删除后面所有的 0x 和空格,拼接成一个字符串为 (总共 64 个字符):

ad5cff0a85ce4a5e9f7f8ad3a6c602f32502b1484c764c848238c3174d271433

前面加上 0x 就是我们用来破解 DB 的 key:

0xad5cff0a85ce4a5e9f7f8ad3a6c602f32502b1484c764c848238c3174d271433

到这里基本上就相当于拿到了微信数据库的 key 了,接下来就是用这个 key 打开 DB 文件了。

TODO(smaug)

破解微信 DB, 导出 Mac 微信聊天记录相关推荐

  1. Mac微信更新 可备份手机聊天记录

    Mac微信更新,版本号为2.2.0,可以在 Mac 微信中备份手机上的聊天记录.此外,可以将文字消息翻译为自己使用的语言,优化了搜索功能.

  2. 企业微信聊天记录如何备份?企业微信如何导出聊天记录?

    现在有很多的企业都是使用企业微信跟客户沟通,聊天中产生的聊天记录具有重要价值,因为包含了很多重要信息.如果这时候某位员工的电脑或者手机出现了问题,需要更换,那么这些聊天记录会不会也丢失了呢?如果还在, ...

  3. chatgpt赋能python:Python微信聊天记录:如何导出并分析聊天记录

    Python 微信聊天记录:如何导出并分析聊天记录 微信是目前最受欢迎的聊天工具之一,但是它的聊天记录并不方便导出和分析.本文将介绍如何使用 Python 导出微信聊天记录,并进行分析. 导出微信聊天 ...

  4. MAC微信接收到的文档打开都变成(只读)解决办法

    在使用mac电办公的时候,经常会需要处理office文档,但经常就是打开别人发来的office文档,我们习惯的就是先点击, 然后在点击上方的使用xxx打开.结果点击打开后,标题上就是显示只读. 解决办 ...

  5. mac 微信备份到外接硬盘方案(软链接)

    mac版本微信中并没有指定备份路径的功能,备份的聊天记录文件也在一个很难找的位置.对于使用256g硬盘的mac的用户,微信聊天记录动辄十几G.几十G的大小,会造成非常严重的硬盘容量恐慌.所以把微信备份 ...

  6. mac微信备份位置macos手机微信备份的文件迁移走

    mac微信备份位置 如果你没有更改过mac版微信的备份文件夹的位置的话,那么mac版微信备份的聊天记录被保存在电脑的[/User/用户/Library/Containers/com.tencent.x ...

  7. Mac微信代理服务器

    Mac微信一直不能使用代理服务器,所以大多数人在代理服务器上网时经常用网页版的微信,这样会很不方便.下面本人亲测的一种方法可以轻松在代理服务器的情况下登陆微信客户端. 1:下载Proxifier,Pr ...

  8. mac微信小助手WeChatPlugin Mac中文版v1.7.5

    微信是mac上一款非常强大的微信插件,这款插件想必很多人都用过,其功能非常多,包括自动回复.消息防撤回.远程控制.微信多开.登录免认证.会话多选删除等.如果你需要一个可以让你的微信客户端更强大的插件, ...

  9. 【mac微信小助手】WeChatPlugin使用教程!

    微信小助手 mac版集微信防撤回和微信多开等诸多功能于一身,可以有效的阻止朋友微信撤回消息,还能开启无手机验证登录,再也不用每次登录扫码验证啦,非常方便! wechatplugin mac版安装教程 ...

最新文章

  1. 第十六届智能车竞赛广东线上比赛 - 哈尔滨工业大学(深圳)比赛筹备
  2. 微软亚太区资料科学总监:R 语言是 VS 生态第一顺位
  3. JavaWeb总结(四)
  4. vue添加html开启服务器_Vue 项目(HTML5 History 模式) 部署服务器
  5. 计算机专业的英语文献,计算机专业英语论文参考文献
  6. ES6语法---解构赋值
  7. mysql怎么拆字符串_MySQL截取和拆分字符串函数用法示例
  8. php 添加样式,PHP实现可自定义样式的分页类
  9. node.js 之 socket.io
  10. ofo启示 | 创业企业为何大多熬不过五年?
  11. 在firefox 2.0.0.3中使用onenote 2007收集资料
  12. 《Android第一行代码(第二版)》源码
  13. java定时器quartz表达式,quartz定时任务cron表达式
  14. PS小技巧----1寸、2存照片制作
  15. 物理-反重力系统:反重力系统
  16. android+广播+讲解,Android广播机制
  17. 全面掌握前端框架Vue.js
  18. dd指令打包iso文件 linux_Linux_如何在Linux操作系统下创建ISO镜像文件,1、用dd命令#dd if=/dev/cdrom - phpStudy...
  19. 谷歌cloud_参加Google Cloud专业机器学习工程师考试的20天Beta
  20. 读心或成现实,OpenBCI要将脑波传感技术用于VR中

热门文章

  1. springboot高校失物招领系统的设计与实现毕业设计源码121441
  2. js运算保留后面两位小数
  3. spring boot 2.1学习笔记【异常】lombok.javac.apt.LombokProcessor could not be initialized
  4. nginx小知识 :通过nginx代理转发接口地址
  5. 关于查看虚拟机防火墙 状态和关闭防火墙(CentOS7)
  6. Python简易的HTTP服务器
  7. 【单调队列优化DP】烽火传递 LibreOJ - 10180
  8. Gretna网络分析之先验知识
  9. 大数据给物流带来了什么?
  10. 大一C语言实验报告九江学院,九江学院C语言实验报告及答案-资源下载人人文库网...