破解微信 DB, 导出 Mac 微信聊天记录

news/2024/11/27 21:02:25/

旧博文,搬到 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)


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

相关文章

微信终于要对聊天记录动手了?

来源:雷科技 微信居然能云端保存聊天记录了? 一则关系到微信12亿活跃用户的消息,在这个略显沉闷的初秋周末突然成为热点。根据中国日报报道,腾讯正在计划为微信个人用户推出付费的云存储服务,这将意味着此前没有云端…

安全可靠快速地导出微信聊天记录

12-2 现在微信上的消息非常多,不管是生活也好还是工作也好,大多数人基本上已不再使用QQ,并且即使使用QQ,它也自带了导出功能,而微信不带这个功能。 如果想要导出微信的聊天记录该咋办?或者说想要快速安全…

快速备份微信聊天记录

当手机固件面临重大更新,或是因忘记锁屏密码或系统不稳定而不得不恢复出厂设置时,我们所安装的APP以及相关的数据资料也将随之而去。此时,唯有提前备份才可确保数据安全。那么,我们如何才能将微信等APP的聊天记录安全迁徙出来呢&a…

从零开始理解Linux中断架构(5)--EL跃迁与Linux用户/内核态

ARM64系统Reset时,PE进入最高的异常级别运行状态 1)Reset后最高异常级别可以选用任何一种运行状态 2)cold reset由输入信号配置,warm reset由RMR_ELx.AA64配置 1)内核态EL1迁移到EL0t 上一节我们提到需要仔细理解的图吗?eret这条特殊的异常返回指令。 我们期望…

【地铁上的面试题】--基础部分--操作系统--内存管理

内存管理是指操作系统或编程语言运行时环境对计算机系统中的内存资源进行分配、使用和回收的过程。其主要目标是有效地管理内存资源,以提供给程序足够的内存空间来存储和执行程序所需的数据和指令。内存管理的作用包括: 内存分配:将可用的内…

macOS无法验证此App不包含恶意软件

换了iMac,刚用有点不习惯,特别是它这安全机制,比ubuntu高太多。。。 想用android ndk进行交叉编译,里面的很多那种可执行文件,会弹出如下错误 解决办法: 1.点取消 2.打开系统偏好设置 3.点安全与隐私 4…

苹果弹出无法验证服务器身份sec,苹果iPhone弹出无法验证服务器身份怎么回事什么意思,怎么解决...

今天一大早,小编就收到了来自iPhone的“问候”。在正常使用的时候,手机会毫无征兆地弹出“无法验证服务器身份”的窗口,而且还不仅弹出一次,实在影响使用。点击详细信息,可以看到无法验证的地址是“imap.hekouxin.com”…

取消苹果商店简短验证_苹果12怎么下载软件-IPhone12软件下载安装方法介绍

苹果12怎么下载软件?当我们购买了最新款的IPhone12手机之后,通常需要安装自己常用的软件到新手机,那苹果12软件怎么下载安装,苹果12怎么下载软件,IPhone12软件下载怎么下,下面就和小编一起来看看吧&#xf…