exe转py

使用python打包成的exe文件可以使用反编译的方法获得源码

准备

在这里插入图片描述
查看编译信息,注意python版本

exe转pyc

使用工具pyinstxtractor
https://github.com/countercept/python-exe-unpacker/blob/master/pyinstxtractor.py
使用相同版本的python,输入命令python pyinstxtractor.py [filename]
在这里插入图片描述
在生成的[filename]_extracted文件夹下找到主程序
在这里插入图片描述
可以看到主程序并没有.pyc的扩展名,这是由于反编译出的程序缺少pyc文件头,需要我们自己补上。
可以安装struct的文件头来补。
在这里插入图片描述
补充后变为
在这里插入图片描述

pyc转py

使用uncompyle6
命令行输入 uncompyle6.exe [源文件] > [目标文件]
在这里插入图片描述
如果反编译失败很有可能是文件头没有修改正确,多改几次到正确为止即可。