拆卸模块
要反汇编 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
的字节码指令。永远不会导入该模块,因此可以安全地使用不受信任的代码。