WeChatMsg/wxManager/decrypt/__init__.py

61 lines
1.7 KiB
Python
Raw Normal View History

2025-03-28 21:29:18 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time : 2025/1/10 2:34
@Author : SiYuan
@Email : 863909694@qq.com
@File : wxManager-__init__.py.py
@Description :
"""
from typing import List
import psutil
from wxManager.decrypt.wx_info_v3 import dump_wechat_info_v3
from wxManager.decrypt.wx_info_v4 import dump_wechat_info_v4
from wxManager.decrypt.common import WeChatInfo
def get_info_v4() -> List[WeChatInfo]:
result_v4 = []
for process in psutil.process_iter(['name', 'exe', 'pid']):
if process.name() == 'Weixin.exe':
wechat_base_address = 0
for module in process.memory_maps(grouped=False):
if module.path and 'Weixin.dll' in module.path:
wechat_base_address = int(module.addr, 16)
break
if wechat_base_address == 0:
continue
pid = process.pid
wxinfo = dump_wechat_info_v4(pid)
result_v4.append(
wxinfo
)
return result_v4
def get_info_v3(version_list) -> List[WeChatInfo]:
result = []
for process in psutil.process_iter(['name', 'exe', 'pid']):
if process.name() == 'WeChat.exe':
pid = process.pid
wxinfo = dump_wechat_info_v3(version_list, pid)
result.append(
wxinfo
)
return result
if __name__ == "__main__":
import json
file_path = r'E:\Project\Python\MemoTrace\resources\data\version_list.json'
with open(file_path, "r", encoding="utf-8") as f:
version_list = json.loads(f.read())
r_4 = get_info_v4()
r_3 = get_info_v3(version_list)
for wx_info in r_4+r_3:
print(wx_info)