如何反汇编一个Python脚本?

12 投票
3 回答
5301 浏览
提问于 2025-04-15 11:37

今天早些时候,我在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

撰写回答