命令行添加保存info信息到json文件选项

This commit is contained in:
xaoyaoo 2024-01-02 10:43:44 +08:00
parent 7e96fc09ec
commit 9e5c1902af
2 changed files with 18 additions and 19 deletions

View File

@ -62,7 +62,7 @@ class MainWxInfo():
sb_wx_info = parser.add_parser(self.mode, help="获取微信信息")
sb_wx_info.add_argument("-vlp", '--version_list_path', metavar="", type=str,
help="(可选)微信版本偏移文件路径", default=VERSION_LIST_PATH)
sb_wx_info.add_argument("-s", '--save_path', metavar="", type=str, help="(可选)保存路径")
sb_wx_info.add_argument("-s", '--save_path', metavar="", type=str, help="(可选)保存路径【json文件】")
return sb_wx_info
def run(self, args):
@ -70,15 +70,7 @@ class MainWxInfo():
path = args.version_list_path
save_path = args.save_path
version_list = json.load(open(path, "r", encoding="utf-8"))
result = read_info(version_list, True) # 读取微信信息
if save_path:
try:
infos = json.load(open(save_path, "r", encoding="utf-8")) if os.path.exists(save_path) else []
except:
infos = []
with open(save_path, "w", encoding="utf-8") as f:
infos += result
json.dump(infos, f, ensure_ascii=False, indent=4)
result = read_info(version_list, True, save_path) # 读取微信信息
return result
@ -290,11 +282,13 @@ class MainAll():
self.mode = "all"
# 添加 'all' 子命令解析器
sb_all = parser.add_parser(self.mode, help="获取微信信息,解密微信数据库,查看聊天记录")
sb_all.add_argument("-s", '--save_path', metavar="", type=str, help="(可选)wx_info保存路径【json文件】")
return sb_all
def run(self, args):
# 获取微信信息
WxInfo = read_info(VERSION_LIST, True)
save_path = args.save_path
WxInfo = read_info(VERSION_LIST, True, save_path)
for user in WxInfo:
key = user.get("key", "")
@ -380,9 +374,6 @@ class MainAll():
MainShowChatRecords().run(args)
PYWXDUMP_VERSION = pywxdump.__version__
class CustomArgumentParser(argparse.ArgumentParser):
def format_help(self):
# 首先显示软件简介

View File

@ -6,6 +6,7 @@
# Date: 2023/08/21
# -------------------------------------------------------------------------------
import ctypes
import json
import os
import re
import winreg
@ -139,7 +140,7 @@ def get_key(pid, db_path, addr_len):
# 读取微信信息(account,mobile,name,mail,wxid,key)
def read_info(version_list, is_logging=False):
def read_info(version_list: dict, is_logging: bool = False, save_path: str = None):
wechat_process = []
result = []
error = ""
@ -207,7 +208,14 @@ def read_info(version_list, is_logging=False):
print(f"[+] {k:>8}: {v}")
print(end="-" * 32 + "\n" if i != len(result) - 1 else "")
print("=" * 32)
if save_path:
try:
infos = json.load(open(save_path, "r", encoding="utf-8")) if os.path.exists(save_path) else []
except:
infos = []
with open(save_path, "w", encoding="utf-8") as f:
infos += result
json.dump(infos, f, ensure_ascii=False, indent=4)
return result