在尝试通过此帖Decompile *.pyc file using uncompyle2帮助其他成员时,我在尝试使用uncompyle6
反编译* .pyc时遇到以下错误,错误如下:
File "/usr/local/lib/python2.7/site-packages/uncompyle6/semantics/pysource.py", line 2231, in build_ast
raise ParserError(e, tokens)
uncompyle6.semantics.parser_error.ParserError: --- This code section failed: ---
2 0 JUMP_ABSOLUTE 120 'to 120'
3 SETUP_WITH 364 'to 370'
6 STOP_CODE
7 JUMP_ABSOLUTE 168 'to 168'
10 SETUP_WITH 22357 'to 22370'
13 LOAD_CONST 2 ''
16 LOAD_CONST 2 ''
19 POP_TOP
20 RETURN_VALUE
-1 RETURN_LAST
Parse error at or near `SETUP_WITH' instruction at offset 3
答案 0 :(得分:0)
您似乎正在尝试反编译(decom py le)一段任意数据。你那里没有有效的字节码,不适用于常规的Python解释器。
JUMP_ABSOLUTE
用于跳回循环的开头。它不与with
语句一起使用,这是SETUP_WITH
操作码处理的语句。跳转可能在代码块之外,在本例中是 forward 而不是后退,因此uncompile6
正确地将此标记为无效。
字节码有可能是模糊,其中字节码含义从其正常位置改变。字节码只是一个字节序列,每个字节都有一个特定的含义(与操作数值一起)。例如,Dropbox Python解释器已经大大改变了该表,试图阻止随意好奇的工程师查看他们的代码(pydecompyle6
补偿这一点)。