反编译PyInstaller打包后的exe为py源码



今天手贱,不小心删了辛辛苦苦写的py文件。但还好在删之前打包了exe,而且不是加密打包,所可以反编译源码出来。







1、先准备一个pyinstxtractor.py文件,用来把exe解析成pyd

源码如下:

2、把它放到要反编译的exe所在位置

3、在命令窗口输入:

python pyinstxtractor.py xxx.exe

4、在目录下生成反编译后的文件:xx.exe_extracted

生成拆解目录如下:

--- xxx.exe_extracted
   -- out00-PYZ.pyz_extracted
      - 各种.pyc文件
   -- out00-PYZ.pyz
   -- some
   -- others
   -- xxx(注意这些都是没后缀的)

5、PYZ-00.pyz_extracted文件夹内是import的文件

6、安装uncompyle反编译需要的.pyc文件为.py

pip install uncompyle

7、找到之前的文件(我这里是main),对比其他.pyc文件,修改main文件,在它前面加上一点内容:

8、改完后保存,并修改后缀为.pyc

9、将pyc反编译为py文件,输入命令:

uncompyle6 main.pyc > output.py

10、在目录下生成output.py,即为源码文件

11、运行生成的py文件可能会报格式错误,可以新建一个py文件再把内容复制进去

12、运行,正常







如何防止被反编译?

打包时候加上密码,让pyc变为pyd,命令如下:

pyinstaller -F --key 123 xxx.py

--key后面跟的是你的密码



猜你喜欢

转载自blog.csdn.net/sxf1061700625/article/details/108426958