逆向python生成的可执行文件

先安装pyinstaller

pip install pyinstaller -i https://pypi.douban.com/simpl

写一个简单的脚本:

print 'hello,world'

pyinstaller基本用法,常用的可选参数如下:

--onefile 将结果打包成一个可执行文件
--onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)
--paths=DIR 设置导入路径
--distpath=DIR 设置将打包的结果文件放置的路径
--specpath=DIR 设置将spec文件放置的路径
--windowed 使用windows子系统执行,不会打开命令行(只对windows有效)
--nowindowed 使用控制台子系统执行(默认)(只对windows有效)
--icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对windows有效)

pyinstaller --onefile --nowindowed one.py #用pyinstaller生成可执行文件

会在one.py的目录下生成一个dist文件夹,文件夹里有one.exe

那我们怎么把exe还原为py文件呢
我们用pyinstaller的archive_viewer.py C:\Python27\Lib\site-packages\PyInstaller\utils\cliutils\archive_viewer.py 路径根据你的python更改
在这里插入图片描述python archive_viewer.py one.exe(替换成你自己的exe文件路径)
在这里插入图片描述

可以看到他反编译出了很多模块,其中one是我们想要的

在这里插入图片描述我们用x one提取出来,命名为one.pyc
但此时one.pyc的前8个字节是被删了的,我们要补回来

前四个字节为python编译的版本,后四个字节为时间戳,时间戳可以任意,编译器版本python2.7 为03 f3 0d 0a,python3.4 为ee 0c 0d 0a

在这里插入图片描述
前面8个字节是我添加的
在这里插入图片描述用easy python decompiler还原pyc,会生成一个one.pyc_dis
在这里插入图片描述

还原成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值