update README

This commit is contained in:
xaoyaoo 2024-01-04 17:13:02 +08:00
parent e044603683
commit 4b7a43fa85
4 changed files with 44 additions and 242 deletions

View File

@ -33,8 +33,7 @@ qq交流群577704006左边二维码 or 点击链接加入群聊[pywxdum
## 1. 项目简介 ## 1. 项目简介
[PyWxDump](https://github.com/xaoyaoo/PyWxDump)是一款用于获取账号信息(昵称/账号/手机/邮箱/数据库密钥) [PyWxDump](https://github.com/xaoyaoo/PyWxDump)是一款用于获取账号信息(昵称/账号/手机/邮箱/数据库密钥)、解密数据库、查看聊天记录、备份导出聊天记录为html的工具。
、解密数据库、查看聊天记录、备份导出聊天记录为html的工具。
* <strong><big> * <strong><big>
超级想要star走过路过帮忙点个[![Star](https://img.shields.io/github/stars/xaoyaoo/PyWxDump.svg?style=social&label=Star)](https://github.com/xaoyaoo/PyWxDump/) 超级想要star走过路过帮忙点个[![Star](https://img.shields.io/github/stars/xaoyaoo/PyWxDump.svg?style=social&label=Star)](https://github.com/xaoyaoo/PyWxDump/)
@ -42,17 +41,28 @@ qq交流群577704006左边二维码 or 点击链接加入群聊[pywxdum
## 2. 功能介绍 ## 2. 功能介绍
* 1获取微信昵称、微信账号、微信手机号、微信邮箱、微信KEY的基址偏移 #### 2.1 核心功能
* 2获取微信的微信昵称、微信账号、微信手机号、微信邮箱、微信KEY、微信原始IDwxid_******
* 3获取微信文件夹路径 * 1获取微信昵称、微信账号、微信手机号、微信邮箱、微信KEY的**基址偏移**
* 4支持查看聊天记录查看 * 2获取当前登录微信的微信昵称、微信账号、微信手机号、微信邮箱、微信KEY、微信原始IDwxid_******)、微信文件夹路径
* 5根据key解密微信数据库 * 3根据key解密微信数据库
* 6提供数据库部分字段说明 * 4合并多种类型数据库方便统一查看
* 7支持微信多开场景获取多用户信息等
* 8微信需要登录状态才能获取数据库密钥 #### 2.2 扩展功能
* 9支持导出聊天记录为html,备份微信聊天记录,方便查看
* 10合并多个数据库方便查看 * 1通过web查看聊天记录
* 11增加极简版pywxdump * 2支持导出聊天记录为html、csv,备份微信聊天记录
* 3远程查看微信聊天记录必须网络可达例如局域网
#### 2.3 文档类
* 1提供数据库部分字段说明
* 2提供CE获取基址偏移方法
#### 2.4 其他功能
* 1增加极简版pywxdumpmini只提供获取数据库密钥以及数据库位置的功能
* 2支持微信多开场景获取多用户信息等
**利用场景** **利用场景**
@ -60,7 +70,8 @@ qq交流群577704006左边二维码 or 点击链接加入群聊[pywxdum
2. 渗透到运维机器(有些运维机器会日常登录自己的微信) 2. 渗透到运维机器(有些运维机器会日常登录自己的微信)
3. 某些工作需要取证(数据库需要拷贝到本地) 3. 某些工作需要取证(数据库需要拷贝到本地)
4. 自行备份(日常备份自己留存) 4. 自行备份(日常备份自己留存)
5. 等等............... 5. 远程查看聊天记录(通过web查看聊天记录)
6. 等等...............
## 3. 更新计划 ## 3. 更新计划
@ -79,20 +90,16 @@ qq交流群577704006左边二维码 or 点击链接加入群聊[pywxdum
## 4. 其他 ## 4. 其他
[PyWxDump](https://github.com/xaoyaoo/PyWxDump)是[SharpWxDump](https://github.com/AdminTest0/SharpWxDump) [PyWxDump](https://github.com/xaoyaoo/PyWxDump)是[SharpWxDump](https://github.com/AdminTest0/SharpWxDump)的经过重构的python语言版本同时添加了很多新的功能。
的经过重构python语言版本同时添加了一些新的功能。
* 项目地址https://github.com/xaoyaoo/PyWxDump * 项目地址https://github.com/xaoyaoo/PyWxDump
* 目前只在windows下测试过mac、linux下可能会存在问题。 * 目前只在windows下测试过mac、linux下可能会存在问题。
* 如发现[version_list.json](https://github.com/xaoyaoo/PyWxDump/tree/master/pywxdump/version_list.json)缺失或错误, * 如发现[version_list.json](https://github.com/xaoyaoo/PyWxDump/tree/master/pywxdump/version_list.json)缺失或错误、bug有改进意见、想要新增功能, 请提交[issues](https://github.com/xaoyaoo/PyWxDump/issues).
请提交[issues](https://github.com/xaoyaoo/PyWxDump/issues). * 常见问题请参考[FAQ](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/FAQ.md),更新日志请参考[CHANGELOG](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/CHANGELOG.md)
* 如发现bug或有改进意见, 请提交[issues](https://github.com/xaoyaoo/PyWxDump/issues).
* 如有其他想要的功能, 请提交[issues](https://github.com/xaoyaoo/PyWxDump/issues).
* 常见问题请参考[FAQ](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/FAQ.md)
* 更新日志请参考[CHANGELOG](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/CHANGELOG.md)
* [:sparkling\_heart: Support Me](https://github.com/xaoyaoo/xaoyaoo/blob/main/donate.md)
* Web UI的仓库位置 [wxdump_web](https://github.com/xaoyaoo/wxdump_web) * Web UI的仓库位置 [wxdump_web](https://github.com/xaoyaoo/wxdump_web)
* [:sparkling\_heart: Support Me](https://github.com/xaoyaoo/xaoyaoo/blob/main/donate.md)
## 5. Star History ## 5. Star History
<details> <details>
@ -108,6 +115,8 @@ qq交流群577704006左边二维码 or 点击链接加入群聊[pywxdum
* 极简版使用说明[pywxdumpmini](https://github.com/xaoyaoo/pywxdumpmini) * 极简版使用说明[pywxdumpmini](https://github.com/xaoyaoo/pywxdumpmini)
* 如果你想更改UI请clone[wx_dump_web](https://github.com/xaoyaoo/wx_dump_web)项目然后按需修改该UI采用VUE+ElementUI开发
【注】: 【注】:
* 关于基址使用cheat engine获取参考[CE获取基址.md](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/CE获取基址.md) * 关于基址使用cheat engine获取参考[CE获取基址.md](https://github.com/xaoyaoo/PyWxDump/tree/master/doc/CE获取基址.md)

View File

@ -1,5 +1,16 @@
# 更新日志 # 更新日志
## v2.4.4 (2024-01-04)
### 新功能
- 增加了全新UI更加美观更加方便使用
- 增加了双击使用的方法直接双击pywxdump.exe即可使用方便小白使用
### 优化
- 修复部分bug
## v2.3.24 ## v2.3.24
# 新功能 # 新功能

View File

@ -1,219 +0,0 @@
# <center>PyWxDump</center>
* 更新日志(发现[version_list.json](./Program/version_list.json)
缺失或错误,请提交[issues](https://github.com/xaoyaoo/PyWxDump/issues))
* 2023.10.11 添加"3.9.5.81"版本的偏移地址[#10](https://github.com/xaoyaoo/PyWxDump/issues/10), 感谢@**[sv3nbeast](https://github.com/sv3nbeast)**
* 2023.10.09 获取key基址偏移可以根据微信文件夹获取不需要输入key
* 2023.10.09 优化代码,删减没必要代码,重新修改获取基址代码,加快运行速度(需要安装新的库 pymem
* 2023.10.07 修改获取基址内存搜索方式,防止进入死循环
* 2023.10.07 增加了3.9.7.29版本的偏移地址
* 2023.10.06 增加命令行解密数据库
* 2023.09.28 增加了数据库部分解析
* 2023.09.15 增加了3.9.7.25版本的偏移地址
## 一、项目介绍
本项目可以获取微信基本信息以及key通过key可以解密微信数据库获取聊天记录好友信息群信息等。
该分支是[SharpWxDump](https://github.com/AdminTest0/SharpWxDump)的经过重构python语言版本同时添加了一些新的功能。
<strong><big>
超级想要star走过路过帮忙点个[![Star](https://img.shields.io/github/stars/xaoyaoo/PyWxDump.svg?style=social&label=Star)](https://github.com/xaoyaoo/PyWxDump/)
呗,谢谢啦~</big></strong>
## 二、使用方法
### 1. 安装依赖
```shell script
pip install -r requirements.txt
```
**说明**
1. requirements.txt中的包可能不全如果运行报错请自行安装缺少的包
2. 如果运行报错请检查python版本本项目使用的是python3.10
3. 安装pycryptodome时可能会报错可以使用下面的命令安装自行搜索解决方案该包为解密的核心包
### 2. 获取微信基本信息
获取微信的信息,获取到几个,取决于现在登录的几个微信。
**2.1 shell获取微信基本信息**
```shell script
cd Program
python get_wx_info.py
```
结果
```shell script
[+] pid: 2365 <!--进程ID-->
[+] version: *.*.*.* <!--微信版本-->
[+] key: ******************************************d <!--数据库密钥-->
[+] name: ***** <!--昵称-->
[+] account: ******** <!--账号-->
[+] mobile: ****** <!--手机号-->
[+] mail: ***** <!--邮箱在微信3.7版本以上无效-->
========================================
[+] pid: 2365
[+] version: *.*.*.*
[+] key: ******************************************d
[+] name: *****
[+] account: ********
[+] mobile: ******
[+] mail: *****
========================================
...
```
**2.2 import 调用**
```python
import json
from Program.get_wx_info import read_info
version_list = json.load(open("version_list.json", "r", encoding="utf-8"))
data = read_info(version_list)
print(data)
```
结果:
```list
[
{
'pid': 5632,
'version': '*.*.*.*',
'key': '***************************************',
'name': '******',
'account': '******',
'mobile': '135********',
'mail': '********'
},
{
'pid': 5632,
'version': '*.*.*.*',
'key': '***************************************',
'name': '******',
'account': '******',
'mobile': '135********',
'mail': '********'
},
...
]
```
**说明** 每个字段具体含义参看上一条shell获取微信基本信息
### 3. 获取偏移地址
* 该方法一般不需要,只有当[version_list.json](./Program/version_list.json)没有对应的微信版本时,可以通过该方法获取偏移地址
* 如果需要请参考下面的方法获取
**3.1 通过python脚本获取**
```shell
python get_base_addr.py --mobile 152***** --name **** --account *** --key ********** --db_path "****\WeChat Files\wxid_******"
```
参数说明:
以下参数必选
mobile = "152********" # 手机号
name = "******" # 微信昵称
account = "******" # 微信账号
# 以上信息可以通过微信客户端获取
以下参数二选一key获取偏移更快db_path获取偏移很慢本地测试需要10-60s
key = '**********************************************'
# 需要降低版本使用get_wx_info.py获取key也可以通过CheatEngine等工具获取
# 最好是保存之前同微、同设备信使用过的key非常方便
db_path = "****\WeChat Files\wxid_******"
# 微信文件夹,通过微信客户端,设置-文件管理-微信文件的默认保存位置获取
return{'3.9.7.29': [63486984, 63488320, 63486792, 0, 63488256, 56006136]}
(十进制)按顺序代表微信昵称、微信账号、微信手机号、微信邮箱默认0、微信KEY、微信原始IDwxid_******
[注]如果参数错误得到的对应地址偏移为0邮箱高版本失效默认为0
**3.2 通过CheatEngine等工具获取**
具体请查看:[CE获取基址.md](./CE%E8%8E%B7%E5%8F%96%E5%9F%BA%E5%9D%80.md)
* 该方法获取到的偏移地址需要手动添加到[version_list.json](./Program/version_list.json)中
**3.3 最简单获取方法**
最简单的方法当然是运行
```shell
git clone https://github.com/xaoyaoo/PyWxDump.git
```
重新拉取一份新的啦~
* ps: 该方法不一定能获取到最新的版本
* 如果需要最新的版本,可以通过上面的方法获取
* 你也可以提交Issues分分钟给你更新
## 三、获取解密数据库
* [decrypt.py](./decrypted/decrypt.py) : 数据库解密脚本
* [get_wx_decrypted_db.py](./decrypted/get_wx_decrypted_db.py) :直接读取当前登录微信的数据库解密后保存到当前目录下的decrypted文件夹中
[注]每台设备、每个微信账号对应一个key切换设备或者微信账号key都会变化
![image](https://user-images.githubusercontent.com/33925462/179410883-10deefb3-793d-4e15-8475-a74954fafe19.png)
* 解密后可拖入数据库工具查找敏感信息
* 还有一份数据的说明文档,但是我累了,不想写了
**方法**
进入目录[decrypted](./decrypted)
```shell
python decrypt.py --key ******** --db_path ./decrypted/decrypted.db --out_path ./decrypted/decrypted.db
```
[注]--key为数据库密钥--db_path为数据库路径--out_path为解密后的数据库路径(解密后的路径目录必须存在)
自动根据注册表读取本地微信聊天记录文件夹解密后保存到当前目录下的decrypted文件夹中
```shell
python get_wx_decrypted_db.py --key ********
```
## 四、解析数据库
* [parse.py](../pywxdump/analyzer/parse.py) : 数据库解析脚本,可以解析语音、图片、聊天记录等
* 关于各个数据库的说明文档,请查看[wx数据库简述.md](./wx数据库简述.md)
未完待续...
## 五、支持功能
1. 支持微信多开场景,获取多用户信息等
2. 微信需要登录状态才能获取数据库密钥
**版本差异**
1. 版本 < 3.7.0.30 只运行不登录能获取个人信息登录后可以获取数据库密钥
2. 版本 > 3.7.0.30 只运行不登录不能获取个人信息,登录后都能获取
**利用场景**
1. 钓鱼攻击(通过钓鱼控到的机器通常都是登录状态)
2. 渗透到运维机器(有些运维机器会日常登录自己的微信)
3. 某些工作需要取证(数据库需要拷贝到本地)
4. 自行备份(日常备份自己留存)
5. 等等...............
## 六、免责声明(非常重要!!!!!!!)
本项目仅允许在授权情况下对数据库进行备份,严禁用于非法目的,否则自行承担所有相关责任。使用该工具则代表默认同意该条款;
请勿利用本项目的相关技术从事非法测试,如因此产生的一切不良后果与项目作者无关。

View File

@ -328,6 +328,7 @@ class MainAll():
return return
wxdbpaths = [i for i in wxdbpaths if "Backup.db" not in i and "xInfo.db" not in i] # 过滤掉无需解密的数据库 wxdbpaths = [i for i in wxdbpaths if "Backup.db" not in i and "xInfo.db" not in i] # 过滤掉无需解密的数据库
wxdbpaths = [i for i in wxdbpaths if "MicroMsg" in i or "MediaMSG" in i or r"Multi\MSG" in i] # 过滤掉无需解密的数据库
wxdblen = len(wxdbpaths) wxdblen = len(wxdbpaths)
print(f"[+] 共发现 {wxdblen} 个微信数据库") print(f"[+] 共发现 {wxdblen} 个微信数据库")
print("=" * 32) print("=" * 32)