Python开发-037_可执行文件转换
当开发者向普通用户分享程序时,为了方便用户在未安装Python环境的情况下能够正常运行,需要将开发好的程序进行打包,转换成用户可运行的文件类型
作为渗透测试人员,打点完成后,可能会面临shell无法获得环境支持的情况,就可以通过打包工具进行转换为目标系统可执行文件
本节将介绍在Windows和Linux两种系统下,将Python类型的文件转换成可执行文件的方式
1 PyInstaller介绍
PyInstaller
是常见的执行文件打包工具。该工具的安装方式非常简单,可运行在Windows
、MacOS X
和GNU/Linux
操作系统环境中,支持Python 2和Python 3两种版本,并且在不同的操作系统环境中,PyInstaller
工具的使用方法和选项相同。
注意
用PyInstaller
打包的执行文件,只能在与执行打包操作的系统类型相同的环境下运行。也就是说,这样的执行文件不具备可移植性,比如在Windows系统下用PyInstaller
生成的执行文件只能运行在Windows
环境,在Linux
系统下生成的执行文件只能运行在Linux
环境,并且极端情况可能出现win7
打包无法得到win10
系统支持的情况,所以需要针对性处理
2 PyInstaller安装
pyinstaller
默认支持pip install pyinstaller
安装,如遇到pip环境不好用,可以手动安装
手工安装PyInstaller安装
- 第一步:官网下载(https://pypi.org/project/PyInstaller)下载PyInstaller的安装包
- 第二步:解压执行
python setup.py install
3 文件打包
文件转换的操作是基本相同的,不过对于windows系统,我们可以加载一个ico图标,
阿里ico图标下载站:https://www.iconfont.cn/
# 基础命令 -> 根目录下有ico文件也会自动应用
pyinstaller -F cmd.py # cmd.py即被打包的程序
# windows下添加ico打包
pyinstaller -F -i cmd.ico cmd.py # cmd.ico 即作为软件封面的ico图片
4 案例:打包命令执行程序
该程序使用os
调用系统命令
import os
def start():
print("当前用户权限为",end="")
# 1.查看当前登录用户
os.system("whoami\n") # 不推荐使用系统命令作为文件名
while True:
# 循环等待接受命令,交给os.system执行
info = input("执行命令->")
os.system(info)
if __name__ == "__main__":
try:
start()
except Exception:
print("interrupted by user,killing all threads")
输入命令,执行后得到两个文件夹一个文件
pyinstaller -F cmd_kinght.py
在dist文件夹下,会生成一个exe文件,即是打包完成的程序
双击即可运行python脚本
Python开发-037_可执行文件转换
http://localhost:8080/archives/KI6f33x4