添加使用说明

This commit is contained in:
SiYuan
2025-03-29 16:09:20 +08:00
parent 8ef61ab61a
commit f09a00d4ec
33 changed files with 67 additions and 18834 deletions

View File

@@ -2,88 +2,22 @@
## 1、解析数据
```python
import json
import os
from multiprocessing import freeze_support
from wxManager import Me
from wxManager.decrypt import get_info_v4, get_info_v3
from wxManager.decrypt.decrypt_dat import get_decode_code_v4
from wxManager.decrypt import decrypt_v4, decrypt_v3
if __name__ == '__main__':
freeze_support() # 使用多进程必须
r_4 = get_info_v4() # 微信4.0
for wx_info in r_4:
print(wx_info)
me = Me()
me.wx_dir = wx_info.wx_dir
me.wxid = wx_info.wxid
me.name = wx_info.nick_name
me.xor_key = get_decode_code_v4(wx_info.wx_dir)
info_data = me.to_json()
output_dir = wx_info.wxid
key = wx_info.key
wx_dir = wx_info.wx_dir
decrypt_v4.decrypt_db_files(key, src_dir=wx_dir, dest_dir=output_dir)
with open(os.path.join(output_dir, 'db_storage', 'info.json'), 'w', encoding='utf-8') as f:
json.dump(info_data, f, ensure_ascii=False, indent=4)
version_list_path = '../wxManager/decrypt/version_list.json'
with open(version_list_path, "r", encoding="utf-8") as f:
version_list = json.loads(f.read())
r_3 = get_info_v3(version_list) # 微信3.x
for wx_info in r_3:
print(wx_info)
me = Me()
me.wx_dir = wx_info.wx_dir
me.wxid = wx_info.wxid
me.name = wx_info.nick_name
info_data = me.to_json()
output_dir = wx_info.wxid
key = wx_info.key
wx_dir = wx_info.wx_dir
decrypt_v3.decrypt_db_files(key, src_dir=wx_dir, dest_dir=output_dir)
with open(os.path.join(output_dir, 'Msg', 'info.json'), 'w', encoding='utf-8') as f:
json.dump(info_data, f, ensure_ascii=False, indent=4)
```shell
python 1-decrypt.py
```
运行成功之后会生成一个数据库文件夹
* 如果微信版本是4.0的话数据库文件夹是:`./wxid_xxx/db_storage`
* 如果微信版本是3.x的话数据库文件夹是`./wxid_xxx/Msg`
后面其他操作都会用到这个文件夹
## 2、查看联系人
```python
import time
修改 `2-contact.py` 文件的 `db_dir` 为上面得到的文件夹如果微信是4.0 `db_version` 设置为4否则设置为3
from wxManager import DatabaseConnection
db_dir = '' # 解析后的数据库路径,例如:./db_storage
db_version = 4 # 数据库版本4 or 3
conn = DatabaseConnection(db_dir, db_version) # 创建数据库连接
database = conn.get_interface() # 获取数据库接口
st = time.time()
cnt = 0
contacts = database.get_contacts()
for contact in contacts:
print(contact)
contact.small_head_img_blog = database.get_avatar_buffer(contact.wxid)
cnt += 1
if contact.is_chatroom:
print('*' * 80)
print(contact)
chatroom_members = database.get_chatroom_members(contact.wxid)
print(contact.wxid, '群成员个数:', len(chatroom_members))
for wxid, chatroom_member in chatroom_members.items():
chatroom_member.small_head_img_blog = database.get_avatar_buffer(wxid)
print(chatroom_member)
cnt += 1
et = time.time()
print(f'联系人个数:{cnt} 耗时:{et - st:.2f}s')
```shell
python 2-contact.py
```
## 3、导出数据