Python拆卸模块

示例

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

python -m compileall <file>.py

然后在解释器中运行

import dis
import marshal
with open("<file>.pyc", "rb") as code_f:
    code_f.read(8) # 幻数和修改时间
    code = marshal.load(code_f) # 返回可以反汇编的代码对象
    dis.dis(code) # 输出反汇编

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