uncompyle6是一款原生python的跨版本反编译器和fragment反编译器,是decompyle、uncompyle、uncompyle2等的接替者。它可以把python生成的pyo、pyc字节码文件反编译为十分完美的源码,并可以将反编译后的源码再次生成字节码文件。
uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码,这其中跨越了24年的python版本,此外还包括Dropbox的Python 2.5字节码和一些PyPy字节码。
安装使用方法
1、下载并解压到安装目录
python setup.py install//安装
2、具体用法:
outfile必须先写,例如有一个pcat.pyc,想反编译输出文件为pcat.py
uncompyle6 -o pcat.py pcat.pyc
反编译:uncompyle6 ../pyc/utils.cpython-38.pyc > ../pyc/utils.py
事实上比uncompyle2容易多了,在windows里pip安装后,会在%python_home%\Scripts\目录下生成uncompyle6.exe
所以只要你把%python_home%\Scripts\加入到windows的环境变量里,即可像在linux上般使用uncompyle6命令。
uncompyle6命令行使用:
import uncompyle6
with open("my.py","w",encoding='utf8') as f:
uncompyle6.uncompyle_file("mp.pyo", f)
说明
安装好后,注意执行的命令为uncompyle6,而不是uncompyle。
查看帮助命令:uncompyle6 --help、uncompyle6 -h
反编译单个文件 :uncompyle6 foo.pyc > foo.py
反编译多个文件:uncompyle6 -o . *.pyc