将.pyc文件转换为带有解压样式6的.py文件(封送处理数据错误)

2024-07-04 07:48:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将flag.pyc文件转换为flag.py文件。
以下是我的程序:flag.pyc->flag.pyasm->flag2.pyc->flag.py
但是,最后一步(flag2.pyc->;flag.py)会生成错误封送数据错误 为了确定问题,我仔细检查了flag2.pyc文件。我发现flag2.pycflag.pyc不同。由于.pyc文件很难读取,我决定将flag2.pyc转换为flag2.pyasm,以查看flag.pyasmflag2.pyasm之间的差异。然而,它给了我一个类似的错误

以下是如何生成每个文件:
flag.pyc是原始的.pyc文件。
flag.pyasmflag.pycxdisxasm
生成 flag2.pyc由带有xdisxasm
flag.pyasm生成 flag2.pyasm由带有xdisxasm
flag2.pyc生成 flag.pyflag2.pycuncompyle6生成

以下是每个过程的命令:
1. flag.pyc->flag.pyasmpydisasm --asm flag.pyc > flag.pyasm
2. flag.pyasm->flag2.pyc./xasm/xasm_cli.py flag.pyasm
3. flag2.pyc->flag2.pyasmpydisasm --asm flag2.pyc > flag2.pyasm
4. flag2.pyc->flag.pyuncompyle6 flag2.pyc

第一步和第二步工作正常。
但是,第三步和第四步给了我一个类似的错误(错误封送数据错误

下面是第三步的错误:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/load.py", line 242, in load_module_from_file_object
    co = marshal.loads(bytecode)
ValueError: bad marshal data (unknown type code)
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/load.py", line 242, 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 "/Library/Frameworks/Python.framework/Versions/3.8/bin/pydisasm", line 10, in <module>
    sys.exit(main())
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.cae(self.cae(self.callback, **ctx.params)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/bin/pydisasm.py", line 75, in main
    disassemble_file(path, sys.stdout, asm, header, show_bytes)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/main.py", line 270, in disassemble_file
    version, timestamp, magic_int, co, is_pypy, source_size, sip_hash = load_module(filename)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/load.py", line 135, in load_module
    return load_module_from_file_object(
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xdis/load.py", line 255, in load_module_from_file_object
    raise ImportError(
ImportError: Ill-formed bytecode file /Users/frank/Desktop/python-xasm/xasm/flag2.pyc
<class 'ValueError'>; bad marshal data (unknown type code)

我的环境是MacOs。我的python版本是3.8.0,带有最新的xdisxasmuncompyle6
有什么建议吗


Tags: inpyliblinelibrarysiteframeworkversions

热门问题