对python3.7打包而成的exe进行反编译

记一次对pyinstaller打包的,无加壳exe程序的反编译。之前,有位朋友写了有关学校充电费的程序,打包成了exe,现在学校充电费的网站更新了,我就想把这位朋友写的程序反编译一下,然后进行代码修改。

首先:

将朋友写的exe程序放进HXD中,发现朋友也正好是用python3.7写的程序。在HXD中,结尾部分可多次发现py3.7之类的字符。
python37
由于我们两个的python版本都是3.7,为接下来的反编译减去了不少的麻烦。

工具

接下来的反编译需要一个脚本pyinstxtractor.py。可在如下网站中下载:
pyinstxtractor
接下来将要进行反编译的exe程序与下载下来的脚本放到同一个目录下,然后通过cmd命令:

python pyinstxtractor.py 待反编译的exe文件

如果你的python版本与待反编译的exe文件python版本一致,会出现如下画面:
分解成功
然后在当前目录下,你会看到生成的一个新的文件夹,以extracted结尾的文件夹,然后进入。

开始利用HXD

进入之后找到程序命名的文件,例如你的exe名为login.exe,那么你要找的文件便是login。然后要找到struct文件。如图:
在这里插入图片描述
将这两个文件拖入HXD,发现struct比程序文件多了十六个字节,如图
在这里插入图片描述
在这里插入图片描述
将struct多的那十六个字节补充进login头部中,并将新产生的文件命名为pyc文件。

进行pyc反编译

将得到的pyc文件,通过uncompyle6进行反编译。
对uncompyle6进行安装

pip install uncompyle6

然后通过命令进行反编译:

uncompyle6.exe file.pyc > file.py

就可以得到py源代码文件了。

补充
若打包的python不存在自写库,那么反编译就基本结束了,若还有作者自己写的库,那么还得将作者自写的库反编译一下。在如下文件夹中,将自写库反编译出来。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chrisyyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值