Python开发-037_可执行文件转换

当开发者向普通用户分享程序时,为了方便用户在未安装Python环境的情况下能够正常运行,需要将开发好的程序进行打包,转换成用户可运行的文件类型

作为渗透测试人员,打点完成后,可能会面临shell无法获得环境支持的情况,就可以通过打包工具进行转换为目标系统可执行文件

本节将介绍在Windows和Linux两种系统下,将Python类型的文件转换成可执行文件的方式

1 PyInstaller介绍

PyInstaller是常见的执行文件打包工具。该工具的安装方式非常简单,可运行在WindowsMacOS XGNU/Linux操作系统环境中,支持Python 2和Python 3两种版本,并且在不同的操作系统环境中,PyInstaller工具的使用方法和选项相同。

注意

PyInstaller打包的执行文件,只能在与执行打包操作的系统类型相同的环境下运行。也就是说,这样的执行文件不具备可移植性,比如在Windows系统下用PyInstaller生成的执行文件只能运行在Windows环境,在Linux系统下生成的执行文件只能运行在Linux环境,并且极端情况可能出现win7打包无法得到win10系统支持的情况,所以需要针对性处理

2 PyInstaller安装

pyinstaller默认支持pip install pyinstaller安装,如遇到pip环境不好用,可以手动安装

手工安装PyInstaller安装

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文件,即是打包完成的程序

image-20220821015718203

双击即可运行python脚本

image-20220821015913200


Python开发-037_可执行文件转换
http://localhost:8080/archives/KI6f33x4
作者
kinght
发布于
2024年11月11日
更新于
2024年11月11日
许可协议