uncompyle6 python3.9 報錯
阿新 • • 發佈:2021-09-19
-
Uncompyle6 安裝與使用
pip安裝
pip install uncompyle6
uncompyle6加上需要反編譯的檔案引數即可,注意使用-o 選項輸出到檔案中
uncompyle6 -o test.py test.pyc
-
如使用python 3.9 報錯,會報錯
Error: uncompyle6 requires Python 2.6-3.8
-
我們只需要給uncompile包加一個3.9支援
vim /usr/local/lib/python3.9/dist-packages/uncompyle6/bin/uncompile.py
另外報錯是在做“DASCTF八月挑戰賽”python逆向題目的時報錯:
# uncompyle6 -o py.py py.pyc Traceback (most recent call last): File "/usr/local/lib/python3.9/dist-packages/xdis/load.py", line 297, in load_module_from_file_object co = marshal.loads(bytecode) ValueError: bad marshal data (unknown type code) Traceback (most recent call last): File "/usr/local/lib/python3.9/dist-packages/xdis/load.py", line 297, 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 "/usr/local/bin/uncompyle6", line 8, in <module> sys.exit(main_bin()) File "/usr/local/lib/python3.9/dist-packages/uncompyle6/bin/uncompile.py", line 193, in main_bin result = main(src_base, out_base, pyc_paths, source_paths, outfile, File "/usr/local/lib/python3.9/dist-packages/uncompyle6/main.py", line 316, in main deparsed = decompile_file( File "/usr/local/lib/python3.9/dist-packages/uncompyle6/main.py", line 183, in decompile_file (version, timestamp, magic_int, co, is_pypy, source_size, sip_hash) = load_module( File "/usr/local/lib/python3.9/dist-packages/xdis/load.py", line 167, in load_module return load_module_from_file_object( File "/usr/local/lib/python3.9/dist-packages/xdis/load.py", line 310, in load_module_from_file_object raise ImportError( ImportError: Ill-formed bytecode file py.pyc <class 'ValueError'>; bad marshal data (unknown type code)
- 是因為py.pyc檔案首部是損壞的,Struct.pyc檔案包含一個完整可用的首部,用他修復py.pyc.
本文來自部落格園,作者:jzking121,轉載請註明原文連結:https://www.cnblogs.com/jzking121/p/15312628.html