拆卸模块

要反汇编 Python 模块,首先必须将其转换为 .pyc 文件(Python 编译)。为此,请运行

python -m compileall <file>.py

然后在翻译中,运行

import dis
import marshal
with open("<file>.pyc", "rb") as code_f:
    code_f.read(8) # Magic number and modification time
    code = marshal.load(code_f) # Returns a code object which can be disassembled
    dis.dis(code) # Output the disassembly

这将编译一个 Python 模块并输出 dis 的字节码指令。永远不会导入该模块,因此可以安全地使用不受信任的代码。