假设我有:
>>> def test(a):
>>> print a
现在,我想探索一下测试在编译后的形式中是什么样子的。
>>> test.func_code.co_code
'|\x00\x00GHd\x00\x00S'
我可以使用dis模块获得分解的表单:
>>> import dis
>>> dis.dis(test)
2 0 LOAD_FAST 0 (a)
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 0 (None)
8 RETURN_VALUE
有没有一个开源的和维护的反编译器,我可以用来把字节码转换回可读的python代码?
更新:感谢您建议反编译,但它已经过时(python2.3),没有人再维护它。有什么Python2.5或更高版本的吗?
从github获取uncompyle2!:)
取消yc
http://sourceforge.net/projects/unpyc/
它是旧decompyle的一个维护分支,更新后可用于2.5和2.6。
还有现在的{a1},它是用python编写的,pycdc是用C++编写的。
这两个版本都处理多个版本的Python字节码,包括Python 2版本和Python 3版本。
相关问题 更多 >
编程相关推荐