Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decrypted.py 生成的文件是空文件 #20

Closed
Daryl-Do opened this issue Nov 10, 2023 · 12 comments
Closed

Decrypted.py 生成的文件是空文件 #20

Daryl-Do opened this issue Nov 10, 2023 · 12 comments

Comments

@Daryl-Do
Copy link

问题描述
在获取key后,手动下载Decrypted.py来破解db文件,得到的文件大小相等,但是里面是空的。

复现一下:

  1. 在电脑A(windows)上获取key。用的是hali.life的一个exe文件。(他的破解代码破解成功后文件依然加密,所以用了这里的破解代码。)
  2. 将微信的Msg文件夹传到B电脑(mac)
  3. 在B电脑上执行python Decrypted.py,破解并生成de_MSG0.db。期间未报错。
  4. 打开de_MSG0.db发现是空的
@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 10, 2023

你是直接执行 decrypt.py 这个文件吗,你有输入参数吗?

@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 10, 2023

你或许可以pip 安装 pywxdump,然后使用

wxdump  decrypt --key "74961329461" --db_path "path" --out_path "outpath"

@M1r0ku
Copy link

M1r0ku commented Nov 10, 2023

你或许可以pip 安装 pywxdump,然后使用

wxdump  decrypt --key "74961329461" --db_path "path" --out_path "outpath"

师傅,我按照本项目进行安装,然后将 Python 目录下的wxdump.exe拿到无 Python 环境的虚拟机上运行,是运行不了的;也尝试过写一个 Python 脚本,导入pywxdump库去调用,使用pyinstaller可以成功打包,但是运行时会提示找不到version_list.json文件。
请问下这类通过setuptool安装的项目,可以像pyinstaller那样打包成一个 exe 文件吗?因为实战场景中可能会遇到目标无 Python 环境,希望可以直接传一个 exe 上去运行。

@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 10, 2023

你或许可以pip 安装 pywxdump,然后使用

wxdump  decrypt --key "74961329461" --db_path "path" --out_path "outpath"

请问下师傅,我按照本项目进行安装,然后将 Python 目录下的wxdump.exe拿到无 Python 环境的虚拟机上运行,是运行不了的。这类通过setuptool安装的项目,可以像pyinstaller那样打包成一个 exe 文件吗?因为实战场景中可能会遇到目标无 Python 环境,希望可以直接传一个 exe 上去运行。

可以用pyinstaller打包。但是exe会很大。大概有70M。也可以使用便携python,然后在目标环境安装这个包,接着使用wxdump

@M1r0ku
Copy link

M1r0ku commented Nov 10, 2023

可以用pyinstaller打包。但是exe会很大。大概有70M。也可以使用便携python,然后在目标环境安装这个包,接着使用wxdump

pyinstaller打包的话是针对哪个文件,可以使用--onefile打包成一个 exe 文件吗?

@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 10, 2023 via email

@M1r0ku
Copy link

M1r0ku commented Nov 10, 2023

command.py
前面尝试过打包该文件了,但生成的 exe 都无法运行

$ pyinsatller command.py
$ pyinsatller --onefile command.py

无论是否使用--onefile 参数,都发生如下报错:

> command.exe
Traceback (most recent call last):
  File "pywxdump\command.py", line 12, in <module>
ImportError: attempted relative import with no known parent package
[2816] Failed to execute script 'command' due to unhandled exception!

> command.exe wx_info
Traceback (most recent call last):
  File "pywxdump\command.py", line 12, in <module>
ImportError: attempted relative import with no known parent package
[6272] Failed to execute script 'command' due to unhandled exception!

@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 10, 2023

command.py
前面尝试过打包该文件了,但生成的 exe 都无法运行

$ pyinsatller command.py
$ pyinsatller --onefile command.py

无论是否使用--onefile 参数,都发生如下报错:

> command.exe
Traceback (most recent call last):
  File "pywxdump\command.py", line 12, in <module>
ImportError: attempted relative import with no known parent package
[2816] Failed to execute script 'command' due to unhandled exception!

> command.exe wx_info
Traceback (most recent call last):
  File "pywxdump\command.py", line 12, in <module>
ImportError: attempted relative import with no known parent package
[6272] Failed to execute script 'command' due to unhandled exception!

创建文件 t.py

import site
import os

code = """from pywxdump.command import console_run;console_run()"""

# 创建文件夹
os.makedirs("dist", exist_ok=True)
# 将代码写入文件
with open("dist/tmp.py", "w", encoding="utf-8") as f:
    f.write(code)

# 获取安装包的路径
package_path = site.getsitepackages()
if package_path:
    package_path = package_path[1]  # 假设取第一个安装包的路径
    version_list_path = os.path.join(package_path,'pywxdump', 'version_list.json')

    # 执行打包命令
    cmd = f'pyinstaller --onefile --clean --add-data "{version_list_path};pywxdump" dist/tmp.py'
    print(cmd)
    # os.system(cmd)

else:
    print("未找到安装包路径")

写入这个,然后python执行,接着执行生成的命令。

@M1r0ku
Copy link

M1r0ku commented Nov 10, 2023

,然后python执行,接着执行生成的命令。
成功构建了,生成的 exe 文件 20M 左右,谢谢师傅

@Daryl-Do
Copy link
Author

Daryl-Do commented Nov 10, 2023

你是直接执行 decrypt.py 这个文件吗,你有输入参数吗?

有输入参数的,就是相当于单独运行了decrypt.py这一部分。

用了下面链接里的exe,在目标windows笔记本上获取到了key。AdminTest0/SharpWxDump#48 (comment)

同时获取了该win笔记本上 相应微信的Multi文件夹下的文件。

然后使用第二台mac电脑,用你的decrypt.py脚本跑了后,输出的db打开后是空的。

** 安装pywxdump没有成功,似乎因为requirements里有pywin32,Mac安装会报错。
** 也用了上述链接里的decode脚本(和SharpWxDump Markdown链接里的decode脚本相同),结果是输出的db打不开(sqlite软件端有的显示还需要密码,有的显示非sqlite文件)。 ***所有decode/decrypt脚本都是可以成功解密运行的,只不过输出的db有所不同。

可否帮我思考一下,这种能解密的情况下,key的获取应该没问题吧? 这样的话可能就是mac跑decode的问题,或是mac打开db的问题了

@xaoyaoo
Copy link
Owner

xaoyaoo commented Nov 11, 2023

你是直接执行 decrypt.py 这个文件吗,你有输入参数吗?

有输入参数的,就是相当于单独运行了decrypt.py这一部分。

用了下面链接里的exe,在目标windows笔记本上获取到了key。AdminTest0/SharpWxDump#48 (comment)

同时获取了该win笔记本上 相应微信的Multi文件夹下的文件。

然后使用第二台mac电脑,用你的decrypt.py脚本跑了后,输出的db打开后是空的。

** 安装pywxdump没有成功,似乎因为requirements里有pywin32,Mac安装会报错。
** 也用了上述链接里的decode脚本(和SharpWxDump Markdown链接里的decode脚本相同),结果是输出的db打不开(sqlite软件端有的显示还需要密码,有的显示非sqlite文件)。 ***所有decode/decrypt脚本都是可以成功解密运行的,只不过输出的db有所不同。

可否帮我思考一下,这种能解密的情况下,key的获取应该没问题吧? 这样的话可能就是mac跑decode的问题,或是mac打开db的问题了

key没有问题,应该是你用的软件打开db问题。你可以考虑将解密后的数据库,用python里面的sqlite库连接,看看能不能行。

@Daryl-Do
Copy link
Author

Reference i

是我傻了。账号第一次登陆微信的话MSG0.db不存数据。要登陆后至少关掉一次微信才行。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants