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

image

另外報錯是在做“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.

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM