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

5b832d4b0d7c2d3725bd0879af78a61c.png今天手贱,不小心删了辛辛苦苦写的py文件。但还好在删之前打包了exe,而且不是加密打包,所可以反编译源码出来。1cd07cf40b3cb426d7b48cc94f797166.png6485be767f20e5d7bdda1feb56be0cf0.png1、先准备一个pyinstxtractor.py文件,用来把exe解析成pyd源码如下:
2、把它放到要反编译的exe所在位置

1d9ebcf7421a7a9a8044177205c9c6b0.png

3、在命令窗口输入:
python pyinstxtractor.py xxx.exe

366ab187995ff8dac1a175b230d9fa23.png

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文件,在它前面加上一点内容:

565f51f7081222f91b9afa87d8d86f96.png

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

f9bccb9da6cb48ee0d14636ce8f2f361.png

9、将pyc反编译为py文件,输入命令:
uncompyle6 main.pyc > output.py
10、在目录下生成output.py,即为源码文件

8afe293298e20fb79a5c367952ec6805.png

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

f97840ebc94eef82591830b36bfba841.png

1cd07cf40b3cb426d7b48cc94f797166.png1b36daa95023ff8eedaf7b20748e3a50.png如何防止被反编译?打包时候加上密码,让pyc变为pyd,命令如下:
pyinstaller -F --key 123 xxx.py
--key后面跟的是你的密码

版权声明:本文为weixin_34782968原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。