diff --git a/README.md b/README.md index f15c56c..542674c 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@
更新日志(点击展开): +* 2023.11.28 修改wxid获取方式,修复部分bug * 2023.11.27 解决相对导入包的问题,完善错误提示 * 2023.11.25 聊天记录查看工具bootstrap更换国内cdn * 2023.11.22 添加all命令中解密错误数据日志写入文件,修复部分bug @@ -57,7 +58,8 @@ * 4.生成年度可视化报告 * 5.创建GUI图形界面,方便使用 * 6.查看群聊中具体发言成员的ID [#31](https://github.com/xaoyaoo/PyWxDump/issues/31) -* 7.完善操作文档,增加更多的使用方法 +* 7.完善操作文档,增加更多的使用说明 +* 8.增加数据库合并功能,方便查看 注: 欢迎大家提供更多的想法,或者提供代码,一起完善这个项目,欢迎加入交流qq群:577704006。 ![img.png](./doc/img.png) diff --git a/pywxdump/wx_info/get_wx_info.py b/pywxdump/wx_info/get_wx_info.py index 998bc53..9006f9e 100644 --- a/pywxdump/wx_info/get_wx_info.py +++ b/pywxdump/wx_info/get_wx_info.py @@ -44,21 +44,21 @@ def pattern_scan_all(handle, pattern, *, return_multiple=False): return page_found if page_found: found += page_found - if not return_multiple: - return None + if len(found) > 100: + break return found -def get_info_wxid(h_process, n_size=64): - pm = pymem.Pymem("WeChat.exe") - # addrs = pymem.pattern.pattern_scan_all(pm.process_handle, b'wxid_', return_multiple=True) - addrs = pattern_scan_all(pm.process_handle, b'wxid_', return_multiple=True) - for addr in addrs: +def get_info_wxid(h_process, n_size=19): + # addrs = pymem.pattern.pattern_scan_all(h_process, b'wxid_', return_multiple=True) + addrs = pattern_scan_all(h_process, b'wxid_', return_multiple=True) + wxids = [] + for addr in addrs[0:100]: wxidtmp = get_info_without_key(h_process, addr, n_size) - if wxidtmp.startswith("wxid_") and r'\FileStorage\MsgAttach' in wxidtmp: - wxid = wxidtmp.split(r'\FileStorage\MsgAttach')[0] - return wxid - return "None" + if wxidtmp.startswith("wxid_"): + wxids.append(wxidtmp.split('\\')[0]) + wxid = max(wxids, key=wxids.count) if wxids else "None" + return wxid # 读取内存中的key @@ -122,7 +122,7 @@ def read_info(version_list, is_logging=False): tmp_rd['mobile'] = get_info_without_key(Handle, mobile_baseaddr, 64) if bias_list[2] != 0 else "None" tmp_rd['name'] = get_info_without_key(Handle, name_baseaddr, 64) if bias_list[0] != 0 else "None" tmp_rd['mail'] = get_info_without_key(Handle, mail_baseaddr, 64) if bias_list[3] != 0 else "None" - tmp_rd['wxid'] = get_info_wxid(Handle, 64) + tmp_rd['wxid'] = get_info_wxid(Handle) tmp_rd['key'] = get_key(Handle, key_baseaddr, addrLen) if bias_list[4] != 0 else "None" result.append(tmp_rd) diff --git a/setup.py b/setup.py index ef4e290..4f95a3b 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup, find_packages with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() -version = "2.2.12" +version = "2.2.13" install_requires = [ "psutil", @@ -14,7 +14,8 @@ install_requires = [ "pyaudio", "requests", "pillow", - "pyahocorasick" + "pyahocorasick", + "flask", ] setup(