pyinstxtractor.py 与 uncompyle6
2018-08-25 本文已影响0人
wyude
- 前两天,上学期帮人用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.