如何反汇编一个Python脚本?
今天早些时候,我在StackOverflow上问了一个问题,关于Python处理某些类型循环的方式。其中一个回答里有我例子的拆解版本。
我想了解更多。我该如何拆解我自己的Python代码呢?
3 个回答
2
使用Python自带的dis
模块(比如在交互式解释器中输入import dis
,然后用dis.dis
来查看你感兴趣的任何函数!)。
3
除了把 dis
当作模块使用,你还可以把它当作命令行工具来运行。
比如,在Windows系统上,你可以这样运行:
c:\Python25\Lib\dis.py test.py
这样就会把反汇编的结果输出到控制台上。
13
看看这个 dis 模块:
def myfunc(alist):
return len(alist)
>>> dis.dis(myfunc)
2 0 LOAD_GLOBAL 0 (len)
3 LOAD_FAST 0 (alist)
6 CALL_FUNCTION 1
9 RETURN_VALUE