Python版本,这个方法试过:3.7.5, 3.6.0, 3.5.0, 2.7.17? (我知道,我太绝望了,无法找回我的消息来源。)
我在反编译 exe 时遇到问题。我有点删除了错误的文件夹,现在我只剩下.exe, 由 pyinstaller 制作的,没有别的。所以基本上我decompile pyinstaller exes用谷歌搜索了如何,我发现我首先使用这个:https : //github.com/countercept/python-exe-unpacker/blob/master/pyinstxtractor.py将其分解为.pyc文件,然后uncompyle6获取源代码。问题是它pyinstxtractor不以.pyc格式返回源代码,所以我基本上必须自己转换它,然后向其中添加“魔术数字”,以便uncompyle6将其视为.pyc. 如果你想知道我是如何得到幻数的,那么我只是使用了一个十六进制编辑器来查看另一个的幻数.pyc,那就是pyinstxtractor吐出来然后我只是将它们粘贴到主文件中。所以在那之后,我写
uncompyle63 name_of_pyc.pyc
我收到这个错误:
Traceback (most recent call last):
File "c:\python\lib\site-packages\xdis\load.py", line 208, in load_module_from_file_object
co = marshal.loads(bytecode)
ValueError: bad marshal data (unknown type code)
Traceback (most recent call last):
File "c:\python\lib\site-packages\xdis\load.py", line 208, in load_module_from_file_object
co = marshal.loads(bytecode)
ValueError: bad marshal data (unknown type code)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\python\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\python\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Python\Scripts\uncompyle6.exe\__main__.py", line 9, in <module>
File "c:\python\lib\site-packages\uncompyle6\bin\uncompile.py", line 194, in main_bin
**options)
File "c:\python\lib\site-packages\uncompyle6\main.py", line 261, in main
source_encoding, linemap_stream, do_fragments)
File "c:\python\lib\site-packages\uncompyle6\main.py", line 161, in decompile_file
source_size) = load_module(filename, code_objects)
File "c:\python\lib\site-packages\xdis\load.py", line 116, in load_module
get_code=get_code,
File "c:\python\lib\site-packages\xdis\load.py", line 222, in load_module_from_file_object
"Ill-formed bytecode file %s\n%s; %s" % (filename, kind, msg)
ImportError: Ill-formed bytecode file Bot.pyc
<class 'ValueError'>; bad marshal data (unknown type code)
有什么其他方法可以反编译 pyinstaller 可执行文件(如果这个方法没用)?