Я пытаюсь преобразовать файл flag.py c в файл flag.py .
Вот мои процедуры: flag.py c -> flag.pyasm -> flag2.py c -> flag.py
Однако последний шаг ( flag2.py c -> flag.py ) генерирует ошибка данных плохого маршала
Чтобы определить проблему, я дважды проверил flag2.py c file. Я обнаружил, что flag2.py c отличается от flag.py c. И поскольку файл .py c трудно читать, я решил преобразовать flag2.py c в flag2.pyasm , чтобы увидеть разницу между flag.pyasm и flag2.pyasm . Тем не менее, это дает мне похожую ошибку.
Вот как каждый файл будет сгенерирован:
flag.py c является исходным .py c file.
flag.pyasm генерируется flag.py c с xdis
и xasm
flag2.py c генерируется flag.pyasm с xdis
и xasm
flag2.pyasm генерируется flag2.py c с xdis
и xasm
flag.py генерируется flag2.py c с uncompyle6
Вот команды для каждой процедуры:
1. flag.py c -> flag.pyasm pydisasm --asm flag.pyc > flag.pyasm
2. flag.pyasm -> flag2.py c ./xasm/xasm_cli.py flag.pyasm
3. flag2.py c -> flag2.pyasm pydisasm --asm flag2.pyc > flag2.pyasm
4. flag2.py c -> flag.py uncompyle6 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.My python версия 3.8.0 с новейшая xdis
, xasm
, uncompyle6
Есть предложения?