如何反汇编Python脚本?

时间:2022-02-16 07:07:10

Earlier today, I asked a question about the way Python handles certain kinds of loops. One of the answers contained disassembled versions of my examples.

今天早些时候,我问了一个关于Python处理某些循环的方式的问题。其中一个答案包含我的示例的反汇编版本。

I'd like to know more. How can I disassemble my own Python code?

我想知道更多。我该如何反汇编自己的Python代码?

3 个解决方案

#1


Look at the dis module:

看看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

#2


Use the dis module from the Python standard library (import dis e.g. in an interactive interpreter, then dis.dis any function you care about!-).

使用Python标准库中的dis模块(例如在交互式解释器中导入dis,然后dis.dis你关心的任何函数! - )。

#3


Besides using dis as module, you can also run it as command line tool

除了使用dis作为模块,您还可以将其作为命令行工具运行

For example, on windows you can run:

例如,在Windows上,您可以运行:

c:\Python25\Lib\dis.py test.py

And it will output the disassembed result to console.

它会将反汇编的结果输出到控制台。

#1


Look at the dis module:

看看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

#2


Use the dis module from the Python standard library (import dis e.g. in an interactive interpreter, then dis.dis any function you care about!-).

使用Python标准库中的dis模块(例如在交互式解释器中导入dis,然后dis.dis你关心的任何函数! - )。

#3


Besides using dis as module, you can also run it as command line tool

除了使用dis作为模块,您还可以将其作为命令行工具运行

For example, on windows you can run:

例如,在Windows上,您可以运行:

c:\Python25\Lib\dis.py test.py

And it will output the disassembed result to console.

它会将反汇编的结果输出到控制台。