# WeChat-DataBase-Export
**Repository Path**: Gaiokane/WeChat-DataBase-Export
## Basic Information
- **Project Name**: WeChat-DataBase-Export
- **Description**: 微信数据库,导出微信收藏等
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-09-21
- **Last Updated**: 2023-11-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WeChat-DataBase-Export
微信数据库,导出微信收藏等
目录
* [1. 使用到的 系统/软件 版本信息](#1)
* [2. 使用lldb调试获取数据库密码](#2)
* [3. 打开数据库并查看数据](#3)
* [4. 使用python清洗数据并导出](#4)
* [4.1 准备工作](#4-1)
* [4.2 开始导出](#4-2)
1. 使用到的 系统/软件 版本信息
* macOS(Mojave 10.14)虚拟机安装教程[点击这里](https://github.com/Gaiokane/WeChat-DataBase-Export/blob/master/vm%20install%20macos.pdf "点击跳转")
* 微信(mac版2.4.2)
* DB Browser for SQLite(3.12)
* lldb(1001.0.13.3)(使用时可以自动安装)
* python(2.7.10)(版本无所谓)
[返回目录](#home)
2. 使用lldb调试获取数据库密码
````
1. 打开微信
2. 打开终端输入 lldb -p $(pgrep WeChat) 回车
注意:若没有安装过lldb会提示安装
3. br set -n sqlite3_key 回车
4. c 回车
5. 扫码登录微信
6. 回到终端输入 memory read --size 1 --format x --count 32 $rsi 回车
7. 应该会输出类似于如下的数据
0x000000000000: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000008: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000010: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000018: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
8. 重新打开一个终端输入以下(3至6行自行替换)
python
source = """
0x000000000000: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000008: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000010: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000018: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
"""
key = '0x' + ''.join(i.partition(':')[2].replace('0x', '').replace(' ', '') for i in source.split('\n')[1:5])
print(key)
9. 回车后返回的一串0x开头的66位字符串就是数据库密码
````
[返回目录](#home)
3. 打开数据库并查看数据
````
1. 打开终端输入以下
ls -alh ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat/*/*/Favorites/*.db
2. 回车后返回 收藏 数据库文件路径
3. 去到对应路径下双击favorites.db(确保已安装DB Browser for SQLite)
4. 在弹出的对话框中选择 原始密钥(raw key)、SQLCipher 3默认,在密码文本框中输入数据库密码,点击OK以连接
注意:要在Windows中打开.db文件,运行DB Browser for SQLite目录中的DB Browser for SQLCipher.exe
5. 收藏文章的标题()、链接()均在表FavoritesItemTable -> 字段xml中
````
微信还有其他本地数据库,如:
* Contact - wccontact_new2.db - 好友信息
* Group - group_new.db - 群聊和群成员信息
* Message - {msg_0.db - msg_9.db} - 聊天记录和公众号文章
[返回目录](#home)
4. 使用python清洗数据并导出
4.1 准备工作
使用DB Browser for SQLite打开数据库,点击任务栏中 工具>设置加密>OK,禁用数据库加密,以便之后使用python读取数据
[返回目录](#home)
4.2 开始导出
此处以python3为例,确保已安装python3,并添加相应环境变量
下载[WeChat_Favorites_Export.py](https://github.com/Gaiokane/WeChat-DataBase-Export/blob/master/WeChat_Favorites_Export.py "点击跳转")到本地
````
修改WeChat_Favorites_Export.py中的第7行,favorites.db文件所在路径
在WeChat_Favorites_Export.py目录中按住shift+鼠标右键打开命令提示符/powershell
执行python .\WeChat_Favorites_Export.py
导出结果在WeChat_Favorites_Export.txt中
````
注意:后期收藏内容有变,若要将db文件单独复制出来重新执行py导出操作时,需将favorites.db、favorites.db-shm、favorites.db-wal这三个文件放置在同一路径下,打开数据库并禁用密码,新增数据会保存在favorites.db-shm、favorites.db-wal中,如果只拷贝favorites.db并打开会发现还是之前的数据没有变化
[返回目录](#home)
———————————————————————————————————
参考文章:
https://www.lianxh.cn/news/d34f09cb214e0.html
https://blog.csdn.net/swinfans/article/details/88712593
https://www.v2ex.com/t/466053