这个文件在pyinstaller库里,还没有安装的需要安装一下(已经安装的跳过安装)
安装完成后在python安装路径下的\Lib\site-packages文件夹搜索archive_viewer.py文件
找到文件后可以复制到你想要放置的位置(不复制也行)
这一步会把编译出的文件都罗列出来,像这样
但是我们只需要找到我们exe对应的名字的文件就好了,确认存在之后滑到最下面,会发现有个?号用于输入接下来的命令,在这边我们输入
会显示 to filename? 让你输入需要输出的pyc文件名称,这边输入 your_app.pyc 回车就好了
接下来又会显示?号,接着输入 x struct 回车,输入struct文件名称 struct 回车
由于用PyInstaller打包后,pyc文件的前8个字节会被抹掉,所以最后要自己添加回去。前四个字节为python编译的版本,后四个字节为时间戳。
这边使用Hex Editor Neo软件同时打开.pyc文件和struct文件,复制struct文件前面8个字节插入到.pyc文件的前面:
这样我们就得到了完整的pyc文件
安装uncompyle库
python的编译后文件pyc,可以将pyc文件反编译为py文件。
相应的工具: uncompyle
github地址: https://github.com/rocky/python-uncompyle6/
安装: pip install uncompyle
安装好后,注意执行的命令为 uncompyle6 ,而不是 uncompyle 。
查看帮助命令: uncompyle6 --help 、 uncompyle6 -h
反编译单个文件 : uncompyle6 foo.pyc >foo.py
反编译多个文件: uncompyle6 -o . *.pyc
例子: