- 前两天,上学期帮人用python封了一个算法,打包成exe格式
- 后来,电脑换硬盘,原盘格了,还没备份习惯,所以源码没了
- 所以,要把现在exe反编译为python源码。
- pyinstxtractor.py拆解exe为pyc
- pyinstxtractor.py网上搜索可下载,放在exe目录,
python pyinstxtractor.py xxx.exe
- 生成拆解目录
--- xxx.exe_extracted
-- out00-PYZ.pyz_extracted
- 各种.pyc文件
-- out00-PYZ.pyz
-- some
-- others
-- xxx(注意这些都是没后缀的)
- 安装uncompyle反编译需要的.pyc文件为.py
pip install uncompyle
uncompyle6 input.pyc > output.py
- 反编译出的.py文件格式会有一些问题,当然,python的格式错误,对不齐,那就是逻辑错误了,所以需要修改修改。
- 现在还有一个问题,.pyc文件数不对,发现就是拆解那一步控制台标明的入口文件,也就是上面拆解目录里面没有后缀的文件。
- 其实那些文件也是.pyc文件,.pyc是16进制文件,通过对比发现,是缺少文件头。
- 使用Hex Editor Neo打开一个.pyc文件,第一行是这样的
33 0d 0d 0a 00 00 00 00 00 00 00 00 e3 00 00 00
e3 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00
- 所以,在无后缀文件前面补上
33 0d 0d 0a 00 00 00 00 00 00 00 00
,保存后添加后缀.pyc,那么它就是.pyc文件了,也可以反编译了。
- 我用的是python36.
网友评论