1. 程式人生 > 其它 >uncompyle6 python3.9 報錯

uncompyle6 python3.9 報錯

  • 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