【发布时间】:2018-09-01 07:28:11
【问题描述】:
我正在尝试使用 uncompyle6 反编译一个 pyc 文件。正如这里所说,该操作在偏移量 966 处给出了解析错误。
Parse error at or near `POP_TOP' instruction at offset 996
Uncompyle 打印其反编译的结果,从中我可以看到在反编译我的代码的最后一行后引发了解析错误,这是 root.mainloop() 因为源代码是一个 tkinter gui。
如果有人能说明如何为绝对初学者修复字节码以及我应该从哪里开始,我将不胜感激。由于错误是在我的代码末尾引发的,我觉得错误是可以纠正的。 这是错误本身:
2295 6290 LOAD_NAME 'root'
6292 LOAD_ATTR 'mainloop'
6296 CALL_FUNCTION_0 0 ''
6298 POP_TOP
Parse error at or near `POP_TOP' instruction at offset 996
这是错误行周围的字节码
966 LOAD_NAME 23 (ttk)
968 LOAD_ATTR 110 (Button)
970 LOAD_NAME 107 (iS1cols)
972 LOAD_NAME 112 (tools_be_xl)
974 LOAD_NAME 43 (tools_browse_xls)
976 LOAD_CONST 126 (('textvariable', 'command'))
978 CALL_FUNCTION_KW 3
980 LOAD_ATTR 108 (grid)
982 LOAD_CONST 0 (0)
984 LOAD_CONST 121 (20)
986 LOAD_CONST 117 (4)
988 LOAD_CONST 127 (2)
990 LOAD_NAME 109 (W)
992 LOAD_CONST 128 (('row', 'padx', 'pady', 'column', 'sticky'))
994 CALL_FUNCTION_KW 5
996 POP_TOP
998 LOAD_NAME 23 (ttk)
1000 LOAD_ATTR 113 (LabelFrame)
1002 LOAD_NAME 91 (tab3Int)
1004 LOAD_CONST 129 (' Bulk Edit ')
1006 LOAD_CONST 107 (('text',))
1008 CALL_FUNCTION_KW 2
1010 STORE_NAME 114 (imgStep1)
【问题讨论】:
-
这个字节码是从哪里来的?另外,我不认为
CALL_FUNCTION_0是一个指令。如果删除_0会发生什么? -
它来自一个 pyinstaller 提取器。最初由于损坏,我丢失了我的源文件,所以我使用源代码的 pyinstaller 最近导出的 exe 将可执行文件反转回我的 py 源代码。我现在有了那个 pyc 文件。
-
我怎样才能删除它?
-
别管最后一部分,我误解了一些东西。错误说它的偏移量是 966,而不是 6290。你能在该部分周围显示代码吗?
-
我在错误之前用 more 编辑了问题。是的,这种差异对我来说也很独特
标签: python python-3.6 decompiling pyc