前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >反编译PyInstaller打包后的exe为py源码

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

作者头像
小锋学长生活大爆炸
发布2020-09-08 15:09:56
3.4K0
发布2020-09-08 15:09:56
举报

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

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

源码如下:

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

3、在命令窗口输入:

代码语言:javascript
复制
python pyinstxtractor.py xxx.exe

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

生成拆解目录如下:

代码语言:javascript
复制
--- xxx.exe_extracted
   -- out00-PYZ.pyz_extracted
      - 各种.pyc文件
   -- out00-PYZ.pyz
   -- some
   -- others
   -- xxx(注意这些都是没后缀的)

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

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

代码语言:javascript
复制
pip install uncompyle

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

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

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

代码语言:javascript
复制
uncompyle6 main.pyc > output.py

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

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

12、运行,正常

如何防止被反编译?

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

代码语言:javascript
复制
pyinstaller -F --key 123 xxx.py

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档