帮别人做了一个项目,需要exe执行,使用pyinstaller进行了打包操作,发给用户后,然后源文件没有放网盘,客户还需要修改一个东西。现在手头只有一个exe,总不能把时间浪费在路上毕竟这不是人干的事。
1. 将exe反编译为pyc
使用pyinstxtractor
将exe进行反编译,提取由pyinstaller
生成的可执行文件内容。
pyinstaller Extractor项目地址extractor
Useage:
python pyinstxtractor.py Main.exe
运行后可以得到一个提取的文件夹
))
使用Uncompyle6反编译 *.pyc 文件
使用了在线版本pyc转py,尝试了几个网站都不能正常的反编译。看到uncompyle2
的后续版本uncompyle6
项目地址:uncompyle6
如果直接使用uncompyle6
进行反编译可能会遇到以下两种报错情况,别问我怎么知道的。
1.ImportError: Unknown magic number 227 in bit.pyc
2.bad marshal data (unknown type code)
在使用uncompyle6
之前我们需要二进制编辑软件,我用的是Ultraedit
UltraEdit 27.0.0.94 官方简体中文版安装包 [2020/07/31]
x86 https://downloads.ultraedit.com/main/ue/win/ue_chinese.exe
x64 https://downloads.ultraedit.com/main/ue/win/ue_chinese_64.exe
解决ultraedit 试用期的问题,只需要在hosts
文件中添加以下两行:
1 |
|
使用UltraEdit打开提取目录中的struct.pyc文件,复制0-F 二进制数据粘贴到源码pyc中。
接下来使用:
uncompyle6 bit.pyc > bit.py
即可得到我们反编译后的源码文件了。
- 本文标题:反编译pyinstaller生成的exe程序
- 本文作者:Roy
- 创建时间:2020-08-31 15:31:05
- 本文链接:https://www.yrzdm.com/2020/08/31/pyexe2py/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!