今天手贱,不小心删了辛辛苦苦写的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后面跟的是你的密码