xaoyaoo / pywxdump Goto Github PK
View Code? Open in Web Editor NEW获取微信账号信息(昵称/账号/手机/邮箱/数据库密钥/wxid);PC微信数据库读取、解密脚本;聊天记录查看工具;聊天记录导出为html(包含语音图片)。支持多账户信息获取,支持所有微信版本。
License: Other
获取微信账号信息(昵称/账号/手机/邮箱/数据库密钥/wxid);PC微信数据库读取、解密脚本;聊天记录查看工具;聊天记录导出为html(包含语音图片)。支持多账户信息获取,支持所有微信版本。
License: Other
问题描述
请问现在,微信对于撤回消息的处理,是已经不会保存了吗,还是说仅第一次接收数据的设备才存在?
预期行为
能够在 </revokemsg>
后面看到对应的撤回信息内容
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
问题描述
请在此处提供对问题的详细描述。
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
"3.9.7.15": [
63482696,
63484032,
63482504,
0,
63483968
],
顺便问一下,我有db文件,也有db文件对应的电脑的key,但是换了电脑以后就没办法使用当前代码进行解析了,知道解密key的规则是怎么计算的吗?
pyinstaller打包后,运行打包完成的exe会出现“ModuleNotFoundError: No module named 'importlib.metadata'”问题。
原因:
作者用的应该是高版本的python3。importlib.metadata这个库应该是改名了。高版本的库名叫做importlib.metadata,低版本的库名叫做importlib_metadata。
解决
python37打包exe需要把pywxdump库的cli.py文件中的importlib.metadata全部替换成importlib_metadata
问题描述
在获取key后,手动下载Decrypted.py来破解db文件,得到的文件大小相等,但是里面是空的。
复现一下:
在查看您项目时,CE的取Key操作已失效,这个是如何获取的呢
未登录的无法获取key吗o.0
d:\PyWxDump\Program>python get_wx_info.py
Traceback (most recent call last):
File "d:\PyWxDump\Program\get_wx_info.py", line 196, in
for k, v in i.items():
AttributeError: 'str' object has no attribute 'items'
d:\PyWxDump\Program>
解密数据库MicroMsg.db、MSG0.db均报错,只有一个微信
使用python单独运行模块:
get_wx_info获取微信基本信息:正常
get_bias_addr获取偏移地址 :正常
decrypt.py#数据库解密 报错:key*****Or out_path:'\decrypted.db') Error!
使用sqlcipher、Navicat等其他数据库工具填入64位key或8位偏移地址微信key均报错:密码或数据库错误
使用 pip install pywxdump 后
from pywxdump.bias_addr import BiasAddr
bias_addr = BiasAddr(VERSION_LIST_PATH, VERSION_LIST).run()
报错:
Traceback (most recent call last):
File "", line 1, in
TypeError: BiasAddr.init() missing 3 required positional arguments: 'name', 'key', and 'db_path'
环境信息
麻烦大佬看下,key也算出来了,就是解密不了数据库,是不是新版本不适配了啊
希望大佬尽快支持企业微信!辛苦辛苦!
PS C:\Users\Administrator\PyWxDump\Program> python .\get_base_addr.py --mobile 18***** --name ch******* --account *** --key **************
Traceback (most recent call last):
File "C:\Users\Administrator\PyWxDump\Program\get_base_addr.py", line 272, in
rdata = run(mobile, name, account, key)
File "C:\Users\Administrator\PyWxDump\Program\get_base_addr.py", line 245, in run
name_offset, account_offset, mobile_offset, _, key_offset = ba.get_offset()
File "C:\Users\Administrator\PyWxDump\Program\get_base_addr.py", line 225, in get_offset
account_offset = self.calculate_offset(self.account_addr[1])
IndexError: list index out of range
请问通过CE要如何获取3.9.6和3.9.7版本的用户名呢?获取昵称和手机号都很顺利,但没办法获取到用户名。(也尝试过了文档种提供的方式,通过历史key来获取,但是脚本一直在运行中,无法获取到任何信息——此时脚已运行半小时)
C:\Users\zittziai>wxdump info
Traceback (most recent call last):
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\runpy.py", li
ne 194, in _run_module_as_main
return run_code(code, main_globals, None,
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\runpy.py", li
ne 87, in run_code
exec(code, run_globals)
File "C:\Users\zittziai\AppData\Local\Programs\Python\Python38\Scripts\wxdump.ex
e_main.py", line 7, in
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pywxdump\command.py", line 356, in console_run
modes[args.mode].run(args)
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pywxdump\command.py", line 62, in run
result = read_info(version_list, True) # 读取微信信息
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pywxdump\wx_info\get_wx_info.py", line 99, in read_info
tmp_rd['wxid'] = get_info_wxid(Handle, 64)
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pywxdump\wx_info\get_wx_info.py", line 29, in get_info_wxid
addrs = pymem.pattern.pattern_scan_all(pm.process_handle, b'wxid', return_m
ultiple=True)
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pymem\pattern.py", line 162, in pattern_scan_all
next_region, page_found = scan_pattern_page(
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pymem\pattern.py", line 54, in scan_pattern_page
mbi = pymem.memory.virtual_query(handle, address)
File "c:\users\zittziai\appdata\local\programs\python\python38\lib\site-packages
\pymem\memory.py", line 1119, in virtual_query
raise pymem.exception.WinAPIError(error_code)
pymem.exception.WinAPIError: Windows api error, error_code: 87
环境信息
问题描述
请在此处提供对问题的详细描述。
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
File "D:\env\python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\env\python310\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "D:\env\python310\Scripts\wxdump.exe_main.py", line 7, in
File "D:\env\python310\lib\site-packages\pywxdump\command.py", line 260, in console_run
main_decrypt.run(args)
File "D:\env\python310\lib\site-packages\pywxdump\command.py", line 136, in run
result = batch_decrypt(key, db_path, out_path)
File "D:\env\python310\lib\site-packages\pywxdump\decrypted\decrypt.py", line 105, in batch_decrypt
result.append(decrypt(*i)) # 解密
File "D:\env\python310\lib\site-packages\pywxdump\decrypted\decrypt.py", line 33, in decrypt
mac_salt = bytes([(salt[i] ^ 58) for i in range(16)])
File "D:\env\python310\lib\site-packages\pywxdump\decrypted\decrypt.py", line 33, in
mac_salt = bytes([(salt[i] ^ 58) for i in range(16)])
IndexError: index out of range
1 运行了命令,解密了db
2 然后在微信端发送新的消息
3 再次运行命令,解密db覆盖
4 发现新发送的消息没有
5 重新登录微信,再次运行命令,解密db
6 刚才新发送的消息,出现在了db
是否新的消息,必须重启微信才能获得
python -m pip install --proxy http://127.0.0.1:7890 pycryptodome --user
Collecting pycryptodome
Using cached pycryptodome-3.19.0-cp35-abi3-win_amd64.whl (1.7 MB)
Installing collected packages: pycryptodome
Successfully installed pycryptodome-3.19.0
[notice] A new release of pip is available: 23.0.1 -> 23.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip
python.exe get_wx_decrypted_db.py --key
Traceback (most recent call last):
File "get_wx_decrypted_db.py", line 17, in
from decrypt import decrypt
File "decrypted\decrypt.py", line 6, in
from Cryptodome.Cipher import AES
ModuleNotFoundError: No module named 'Cryptodome'
环境是win10 python 版本3.7.3
问题描述
请在此处提供对问题的详细描述。
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
您好,我看到您提到已经实现了词频分析,部分数据统计,数据绘图,词云,情感分析的功能函数,可否指个路~
根据MSG数据库的解析,似乎我们只能获得群聊的ID也就是StrTalker, 那么如果要定位某一位群成员的聊天记录,似乎没有记录?
群成员的固定ID和聊天记录能定位到吗?请问如何定位和查找?
现在要分析聊天记录,只能分析整个群的,每个群成员的发言没法区分开来?
MSG
localId:字面意思消息在本地的 ID,暂未发现其功用
TalkerId:消息所在房间的 ID(该信息为猜测,猜测原因见 StrTalker 字段),与Name2ID对应。
MsgSvrID:猜测 Srv 可能是 Server 的缩写,代指服务器端存储的消息 ID
Type:消息类型,具体对照见表1
SubType:消息类型子分类,暂时未见其实际用途
IsSender:是否是自己发出的消息,也就是标记消息展示在对话页左边还是右边,取值0或1
CreateTime:消息创建时间的秒级时间戳。此处需要进一步实验来确认该时间具体标记的是哪个时间节点,个人猜测的规则如下:
从这台电脑上发出的消息:标记代表的是每个消息点下发送按钮的那一刻
从其它设备上发出的/收到的来自其它用户的消息:标记的是本地从服务器接收到这一消息的时间
Sequence:次序,虽然看起来像一个毫秒级时间戳但其实不是。这是CreateTime 字段末尾接上三位数字组成的,通常情况下为000,如果在出现两条CreateTime 相同的消息则最后三位依次递增。需要进一步确认不重复范围是在一个会话内还是所有会话。CreateTime 相同的消息则最后三位依次递增。需要进一步确认不重复范围是在一个会话内还是所有会话。
StatusEx、FlagEx、Status、MsgServerSeq、MsgSequence:这五个字段个人暂时没有分析出有效信息
StrTalker:消息发送者的微信号。特别说明,从这里来看的话,上面的TalkerId 字段大概率是指的消息所在的房间ID,而非发送者ID,当然也可能和TalkerId属于重复内容,这一点待确认。
StrContent:字符串格式的数据。特别说明的是,除了文本类型的消息外,别的大多类型这一字段都会是一段 XML 数据标记一些相关信息。通过解析xml可以得到更多的信息,例如图片的宽高、语音的时长等等。
DisplayContent:对于拍一拍,保存拍者和被拍者账号信息
Reserved0~6:这些字段也还没有分析出有效信息,也有的字段恒为空
CompressContent:字面意思是压缩的数据,实际上也就是微信任性不想存在 StrContent 里的数据在这里(例如带有引用的文本消息等;采用lz4压缩算法压缩)
BytesExtra:额外的二进制格式数据
BytesTrans:目前看这是一个恒为空的字段
问题描述
请在此处提供对问题的详细描述。
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
问题描述
打包注册成windows service后,获取wx_db目录失败
复现步骤
利用win32serviceutil.ServiceFramework注册成服务后,get_wechat_db方法中msg_dir获取失败,这行:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Tencent\WeChat", 0, winreg.KEY_READ)
报" [WinError 2] 系统找不到指定的文件",直接执行是没问题的,一番查找资料没有收获,本人对python和windows的这个机制不是很清楚,想请教大家是不是有何解决办法,感谢~
环境信息
[WinError 2] 系统找不到指定的文件
`[*] 解密中...(用时较久,耐心等待)
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-1\231.9225.15\plugins\python\helpers\pydev\pydevd.py", line 1496, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-1\231.9225.15\plugins\python\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Users\Administrator\PycharmProjects\PyWxDump\pywxdump\command.py", line 265, in
console_run()
File "C:\Users\Administrator\PycharmProjects\PyWxDump\pywxdump\command.py", line 261, in console_run
main_all.run(args)
File "C:\Users\Administrator\PycharmProjects\PyWxDump\pywxdump\command.py", line 192, in run
if isinstance(v[i], list):
IndexError: string index out of range
Process finished with exit code 1
`
================================
[+] pid: 8xxxx
[+] version: 3.9.0.28
[+] account: �
[+] mobile: 13xxxxxxxx
[+] name: null
Traceback (most recent call last):
File "get_wx_info.py", line 100, in
print(f"[+] {k:>7}: {v}")
UnicodeEncodeError: 'gbk' codec can't encode character '\u030d' in position 24: illegal multibyte sequence
请问有什么原因会导致此问题出现。 获取到部分信息 key获取的为空
问题描述
大佬,我发现微信要重新登录一次才能在数据库中看到最新的消息,有没有办法在不需要重新登录获取最新的消息
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
你好,我想请问一下,基址-000040这个000040是通过什么方法计算得到的,我想学习一下
问题描述
3.9.7.29 key获取存在问题
复现步骤
通过bias_addr获取的地址获取的key,解密数据库时显示密码错误。
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
双击运行后就显示窗口5秒左右就闪退了
希望导出格式增加CSV或者txt格式,便于后续操作,例如词频分析,数据统计等等
问题描述
请在此处提供对问题的详细描述。
D:\py>wxdump wx_db
Traceback (most recent call last):
File "D:\python38\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\python38\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "D:\python38\Scripts\wxdump.exe_main.py", line 7, in
File "D:\python38\lib\site-packages\pywxdump\command.py", line 258, in console_run
main_wx_db_path.run(args)
File "D:\python38\lib\site-packages\pywxdump\command.py", line 97, in run
msg_dir = args.wf
AttributeError: 'Namespace' object has no attribute 'wf'
复现步骤
请提供重现问题所需的步骤。(执行的命令)
预期行为
请清楚地描述您预期的行为。
实际行为
请描述实际的行为和问题出现的地方。
环境信息
其他信息
请提供任何与问题相关的其他信息(文字,截图等)。
请教怎么解密MSG中emoji消息strcontent的url,很多下载下来都访问不了,只有带cdnurl可以看。
问题描述
能查看一部分好友的俩天记录,大部分在界面点击联系人后右侧为Internal Server Error
复现步骤
.\pywxdump dbshow -msg 'D:\Program Files (x86)\app\DataBase\Msg\MSG.db' -micro 'D:\Program Files (x86)\app\DataBase\Msg\MicroMsg.db' -media 'D:\Program Files (x86)\app\DataBase\Msg\MediaMSG0.db' -fs 'D:\Program Files (x86)\app\DataBase\Msg'
成功解密
生成多个MSG.db文件,但是一次运行只能选择一个,不确定是不是问题所在
界面如图所示,终端报错:
127.0.0.1 - - [05/Dec/2023 11:12:59] "GET /get_chat_data?username=wxid_xxxxx&page=541&limit=100 HTTP/1.1" 500 - 127.0.0.1 - - [05/Dec/2023 11:16:13] "GET /get_chat_data?username=wxid_xxxxx&page=47&limit=100 HTTP/1.1" 200 - [2023-12-05 11:16:22,383] ERROR in app: Exception on /get_chat_data [GET] Traceback (most recent call last): File "flask\app.py", line 1455, in wsgi_app File "flask\app.py", line 869, in full_dispatch_request File "flask\app.py", line 867, in full_dispatch_request File "flask\app.py", line 852, in dispatch_request File "pywxdump\show_chat\main_window.py", line 242, in get_chat_data File "pywxdump\show_chat\main_window.py", line 145, in load_chat_records AttributeError: 'NoneType' object has no attribute 'rsplit' 127.0.0.1 - - [05/Dec/2023 11:16:22] "GET /get_chat_data?username=wxid_xxxxx&page=10&limit=100 HTTP/1.1" 500 -
环境信息
wxdump.exe dbshow -msg D:\1\123\123 -micro D:\1\123\123 -media D:\1\123\123 -fs D:\1\123\123
[+] 请使用浏览器访问 http://127.0.0.1:5000/ 查看聊天记录
兄弟你好,我获取了key后使用脚本解密,出来一串九位数密码,并提示password error,这该怎么搞,
G:\pywxdump>wxdump all
Traceback (most recent call last):
File "d:\bioinfor\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "d:\bioinfor\anaconda3\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "D:\bioinfor\Anaconda3\Scripts\wxdump.exe_main.py", line 7, in
File "d:\bioinfor\anaconda3\lib\site-packages\pywxdump\command.py", line 261, in console_run
subparsers = parser.add_subparsers(dest="mode", help="""运行模式:""", required=True, metavar="mode")
File "d:\bioinfor\anaconda3\lib\argparse.py", line 1703, in add_subparsers
action = parsers_class(option_strings=[], **kwargs)
TypeError: init() got an unexpected keyword argument 'required'
"3.9.5.81": [
61650872,
61652208,
61650680,
0,
61652144
]
大佬,目前还没有mac版本么
问题描述
拿不到MSG解密数据库
复现步骤
按照
git clone https://github.com/xaoyaoo/PyWxDump.git
cd PyWxDump
python -m pip install -U .
进行安装,运行wxdump all后,拿不到d_MSG.db数据库
预期行为
应该在文件夹下显示de_MSG.db文件
实际行为
实际并不现实
环境信息
"HKEY_CURRENT_USER\Software\Tencent\WeChat"下找不到FileSavePath项,所以读出来是空!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.