get info add decorator info_error
This commit is contained in:
parent
0372b9a955
commit
b0ded72f19
@ -13,13 +13,14 @@ import winreg
|
|||||||
import psutil
|
import psutil
|
||||||
import pymem
|
import pymem
|
||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
from .utils import pattern_scan_all, verify_key, get_exe_version, get_exe_bit
|
from .utils import pattern_scan_all, verify_key, get_exe_version, get_exe_bit, info_error
|
||||||
|
|
||||||
ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory
|
ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory
|
||||||
void_p = ctypes.c_void_p
|
void_p = ctypes.c_void_p
|
||||||
|
|
||||||
|
|
||||||
# 读取内存中的字符串(key部分)
|
# 读取内存中的字符串(key部分)
|
||||||
|
@info_error
|
||||||
def get_info_with_key(h_process, address, address_len=8):
|
def get_info_with_key(h_process, address, address_len=8):
|
||||||
array = ctypes.create_string_buffer(address_len)
|
array = ctypes.create_string_buffer(address_len)
|
||||||
if ReadProcessMemory(h_process, void_p(address), array, address_len, 0) == 0: return "None"
|
if ReadProcessMemory(h_process, void_p(address), array, address_len, 0) == 0: return "None"
|
||||||
@ -31,6 +32,7 @@ def get_info_with_key(h_process, address, address_len=8):
|
|||||||
|
|
||||||
|
|
||||||
# 读取内存中的字符串(非key部分)
|
# 读取内存中的字符串(非key部分)
|
||||||
|
@info_error
|
||||||
def get_info_string(h_process, address, n_size=64):
|
def get_info_string(h_process, address, n_size=64):
|
||||||
array = ctypes.create_string_buffer(n_size)
|
array = ctypes.create_string_buffer(n_size)
|
||||||
if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None"
|
if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None"
|
||||||
@ -40,6 +42,7 @@ def get_info_string(h_process, address, n_size=64):
|
|||||||
|
|
||||||
|
|
||||||
# 读取内存中的字符串(昵称部分name)
|
# 读取内存中的字符串(昵称部分name)
|
||||||
|
@info_error
|
||||||
def get_info_name(h_process, address, address_len=8, n_size=64):
|
def get_info_name(h_process, address, address_len=8, n_size=64):
|
||||||
array = ctypes.create_string_buffer(n_size)
|
array = ctypes.create_string_buffer(n_size)
|
||||||
if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None"
|
if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None"
|
||||||
@ -53,6 +56,7 @@ def get_info_name(h_process, address, address_len=8, n_size=64):
|
|||||||
|
|
||||||
|
|
||||||
# 读取内存中的wxid
|
# 读取内存中的wxid
|
||||||
|
@info_error
|
||||||
def get_info_wxid(h_process):
|
def get_info_wxid(h_process):
|
||||||
find_num = 100
|
find_num = 100
|
||||||
addrs = pattern_scan_all(h_process, br'\\Msg\\FTSContact', return_multiple=True, find_num=find_num)
|
addrs = pattern_scan_all(h_process, br'\\Msg\\FTSContact', return_multiple=True, find_num=find_num)
|
||||||
@ -69,6 +73,7 @@ def get_info_wxid(h_process):
|
|||||||
|
|
||||||
|
|
||||||
# 读取内存中的filePath基于wxid(慢)
|
# 读取内存中的filePath基于wxid(慢)
|
||||||
|
@info_error
|
||||||
def get_info_filePath_base_wxid(h_process, wxid=""):
|
def get_info_filePath_base_wxid(h_process, wxid=""):
|
||||||
find_num = 10
|
find_num = 10
|
||||||
addrs = pattern_scan_all(h_process, wxid.encode() + br'\\Msg\\FTSContact', return_multiple=True, find_num=find_num)
|
addrs = pattern_scan_all(h_process, wxid.encode() + br'\\Msg\\FTSContact', return_multiple=True, find_num=find_num)
|
||||||
@ -84,6 +89,7 @@ def get_info_filePath_base_wxid(h_process, wxid=""):
|
|||||||
return filePath
|
return filePath
|
||||||
|
|
||||||
|
|
||||||
|
@info_error
|
||||||
def get_info_filePath(wxid="all"):
|
def get_info_filePath(wxid="all"):
|
||||||
"""
|
"""
|
||||||
# 读取filePath (微信文件路径) (快)
|
# 读取filePath (微信文件路径) (快)
|
||||||
@ -142,6 +148,7 @@ def get_info_filePath(wxid="all"):
|
|||||||
return filePath if os.path.exists(filePath) else "None"
|
return filePath if os.path.exists(filePath) else "None"
|
||||||
|
|
||||||
|
|
||||||
|
@info_error
|
||||||
def get_key(pid, db_path, addr_len):
|
def get_key(pid, db_path, addr_len):
|
||||||
"""
|
"""
|
||||||
获取key (慢)
|
获取key (慢)
|
||||||
|
@ -14,6 +14,23 @@ import hashlib
|
|||||||
from win32com.client import Dispatch
|
from win32com.client import Dispatch
|
||||||
|
|
||||||
|
|
||||||
|
def info_error(func):
|
||||||
|
"""
|
||||||
|
错误处理装饰器
|
||||||
|
:param func:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
try:
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"error9999: {e}")
|
||||||
|
return "None"
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def verify_key(key, wx_db_path):
|
def verify_key(key, wx_db_path):
|
||||||
"""
|
"""
|
||||||
验证key是否正确
|
验证key是否正确
|
||||||
|
Loading…
Reference in New Issue
Block a user