精华内容
下载资源
问答
  • py可执行文件反编译教程--exe转换py

    万次阅读 多人点赞 2019-03-06 14:44:28
    python的便利性,使得如今许多软件开发者、黑客都开始使用python打包成exe的方式进行程序的发布,这类exe有个特点,就是可以使用反编译...下面是一个由pyinstaller打包的勒索病毒,我们通过其图标,就可以知道它是py...

    python的便利性,使得如今许多软件开发者、黑客都开始使用python打包成exe的方式进行程序的发布,这类exe有个特点,就是可以使用反编译的方法得到程序的源码,是不是很神奇?我们接下来就开始学习如何反编译有python打包成的exe程序吧。PS:下面介绍的是使用比较广泛的pyinstaller的反编译方法。

    下面是一个由pyinstaller打包的勒索病毒,我们通过其图标,就可以知道它是pyinstaller打包的。
    1

    反编译的第一步是将exe文件转换成pyc文件,这里使用的是pyinstxtractor,项目地址:
    https://github.com/countercept/python-exe-unpacker/blob/master/pyinstxtractor.py

    输入命令:python pyinstxtractor.py [filename],即可完成转换。PS:python要使用相对应的版本。
    2
    解压成功后,同路径下会出现一个[filename]_extracted的文件夹,这里面就包含了主程序lockyfud,我们要反编译的就是这个文件,其他的都是依赖库,如out00-PYZ-extracted文件夹里的都是库文件,我们不必关心。我们这时可能会纳闷,为什么该文件不是.pyc文件?这可能是pyinstxtractor的一点不足,转换出来的主程序格式不对,我们还需要对其进行手动修复。
    3

    我们需要在该文件起始位置加上8个字节的pyc头,由4字节的magic和4字节的时间戳组成,其中magic会因为python版本的不同而不同,那我们怎么知道是啥呢?有个技巧就是,查看struct文件的magic,直接复制过去。

    5

    添加完pyc头之后是这样的,新增了magic和时间戳:03 F3 0D 0A 00 00 00 00,然后保存为.pyc文件后,就完成修复了。
    6

    最后的工作就是将pyc反编译成py了,这里使用uncompyle6,使用命令:pip install uncompyle6,即可完成安装。然后输入uncompyle6 [filename] > lock.py,将文件反编译成py。
    7
    lock.py里的就是程序源码了。
    8
    这里补充一点,有些病毒程序,为了避免被反编译,会进行一些混淆,使得pyinstxtractor转换出错。如下这个文件,使用pyinstxtractor.py进行转换时会报错,“Error : Unsupported pyinstaller version or not a pyinstaller archive”,意思就是说这不是一个pyinstaller打包的文件。
    9
    它就是个py可执行文件呀,怎么会说不是一个pyinstaller打包程序呢?那就从这问题入手呗,看看为什么会出现这个错误。
    来到pyinstxtractor代码的第50行,原来代码逻辑是这样的,一旦读取不到MAGIC,就会报错,提示不是pyinstaller打包程序。
    10
    网上追溯,可以看到标识MAGIC为 ‘ MEI\xxxxxx ’,2.0版本的MAGIC位于 [end - 24] 处,2.1版本的MAGIC位于 [end - 88] 处。
    11
    而当我们查看文件的二进制时,发现文件末尾都是些垃圾数据,根本没有 ‘MEI’ 标识。
    12
    我们搜索一下,终于在上面的一个位置找到了MAGIC,这个就是pyinstaller标识。接下来就是要把垃圾数据去除掉,使MAGIC位于24或88的位置,那到底是24还是88呢?(该文件是pyinstaller2.0还是pyinstaller2.1打包的),这就得看下2.0和2.1的区别了。
    13
    与2.0相比,2.1多了64字节的pylibname,那我们就看看该文件里存不存在pylibname。
    14
    我们在 ‘MEI’ 后面发现了python27.dll,这个就是pylibname,看来这个是pyinstaller2.1打包的,所以我们就删除从’MEI’+88之后的所有垃圾数据。删除后的结果如下:
    15
    修复后,可以正常转换了,之后的步骤如上。
    16

    展开全文
  • Python3 py转exe.py

    2018-08-14 21:22:18
    py转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转...
  • py2exe是发布在开源许可证下的。 二、安装py2exe 从http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-...
  • 一、简介py2exe已经被用于创建wxPython,...py2exe是发布在开源许可证下的。二、安装py2exe从http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2e...

    一、简介

    py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

    二、安装py2exe

    从http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。

    三、py2exe的用法

    如 果你有一个名为myscript.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的 windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句 import py2exe 。

    mysetup.py示例如下:

    # mysetup.py

    from distutils.core import setup

    import py2exe

    setup(console=["myscript.py"])

    然后按下面的方法运行mysetup.py:

    python mysetup.py py2exe

    上面的命令执行后将产生一个名为dist的子目录,其中包含了myscript.exe,python24.dll,library.zip这些文件。

    如果你的myscript.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。

    dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

    默认情况下,py2exe在目录dist下创建以下这些必须的文件:

    1、一个或多个exe文件。

    2、python##.dll。

    3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。

    4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo

    上面的mysetup.py创建了一个控制台的myscript.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["myscript.py"]替换为windows=["myscript.py"]既可。

    py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。

    运行下面个命令,将显示py2exe命令的所有命令行标记。

    python mysetup.py py2exe --help

    四、指定额外的文件

    一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。

    如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。

    示例如下:

    # mysetup.py

    from distutils.core import setup

    import glob

    import py2exe

    setup(console=["myscript.py"],

    data_files=[("bitmaps",

    ["bm/large.gif", "bm/small.gif"]),

    ("fonts",

    glob.glob("fonts\\*.fnt"))],

    )

    说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

    五、Windows NT services

    你可以通过传递一个service关键字参数给setup函数来建造Windows NT services,这个service参数的值必须是一个Python模块名(包含一service类)的列表。

    示例如下:

    # mysetup.py

    from distutils.core import setup

    import py2exe

    setup(service=["MyService"])

    所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

    六、COM servers

    你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。

    示例如下:

    # mysetup.py

    from distutils.core import setup

    import py2exe

    setup(com_server=["win32com.server.interp"])

    默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

    展开全文
  • py转exe

    2019-12-16 11:35:01
    1、用auto-py-to-exe转了一个exe文件,之后点击闪退; 2、用控制台执行转换好的EXE文件报错,unable to find qt5core.dll,之后把路径添加进入就好了; 3、如果这样还是不行的话在文件头添加一个(自己这边没添加...

    1、用auto-py-to-exe转了一个exe文件,之后点击闪退;

    2、用控制台执行转换好的EXE文件报错,unable to find qt5core.dll,之后把路径添加进入就好了;

    3、如果这样还是不行的话在文件头添加一个(自己这边没添加也可以的)

    if hasattr(sys, 'frozen'):
         os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']

    应该能解决了;

    展开全文
  • #mysetup.pyfrom distutils.core import setupimport py2exesetup(console=["helloworld.py"])然后按下面的方法运行mysetup.py:python mysetup.py py2exe上面的命令执行后将产生一个名为dist的子目录,其中包含了...

    #mysetup.py

    from distutils.core import setup

    import py2exe

    setup(console=["helloworld.py"])

    然后按下面的方法运行mysetup.py:

    python mysetup.py py2exe

    上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。

    如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。

    dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

    默认情况下,py2exe在目录dist下创建

    以下这些必须的文件:

    1、一个或多个exe文件。

    2、python##.dll。

    3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。

    4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo

    上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。

    py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。

    运行下面个命令,将显示py2exe命令的所有命令行标记。

    四、指定额外的文件一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。

    如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。

    示例如下:

    from distutils.core import setup

    import glob

    import py2exe

    setup(console=["helloworld.py"],

    data_files=[("bitmaps",

    ["bm/large.gif", "bm/small.gif"]),

    ("fonts", glob.glob("fonts\\*.fnt"))])

    说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

    五、Windows NT services你可以通过传递一个service关键字参数给setup函数来建造Windows NT services

    ,这个service参数的值必须是一个Python模块名(包含一service类)的列表。

    示例如下:

    from distutils.core import setup

    import py2exe

    setup(service=["MyService"])

    所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

    六、COM servers

    你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。示例如下:# mysetup.pyfrom distutils.core import setupimport py2exesetup(com_server=["win32com.server.interp"])默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

    七、本人补充

    补充一下,如果要把python编译的所有文件打包到一个exe中,就需要在setup()这个函数中,要设置2个参数:options中的bundle_files和zipfile。

    其中bundle_files有效值为:

    3 (默认)不打包。

    2 打包,但不打包Python解释器。

    1 打包,包括Python解释器。

    zipfile的有效值为:

    不填(默认) 生成一个library.zip文件

    None 把所有东西打包进.exe文件中

    实例如下:

    #! /usr/bin/env python

    # -*- coding: utf-8 -*-

    #安装成windows服务的python脚本

    #内容:

    from distutils.core import setup

    import py2exe

    options = {"py2exe":{"compressed": 1, #压缩

    "optimize": 2,

    "bundle_files": 1 #所有文件打包成一个exe文件

    }}

    setup(

    service=["PyWindowsService"],

    options=options,

    zipfile=None)

    展开全文
  • py2exe转换单一exe

    2019-06-29 19:07:05
    from distutils.core import setup import py2exe, sys, os sys.argv.append('py2exe') setup( options = {'py2exe': {'bundle_files': 1}}, console = [XXXX.py'], zipfile = None, )...
  • py2exe总结

    2020-10-24 22:55:26
    py脚本编译成exe需要py2exepy脚本、setup.py脚本(设置编译参数) 1 安装py2exe cmd下输入:pip install py2exe 注意通过我的测试发现3.6、3.7、3.8版本的py2exe转换pyexe的时候都会出错,只有3.4版本的没有...
  • py2exe转换参数

    2016-11-08 00:43:58
    在公司用python写了个统计数据并通过xlsxwriter模块生成excel的小工具, 完成后使用py2exe转换成exe文件过程中遇到了些问题, 记录下.from distutils.core import setupimport syssys.argv.append('py2exe') # 直接...
  • py文件转exe文件

    2020-07-07 16:13:28
    1. pip换源。 2.pip install pyinstaller 3.切换到要转换文件的目录 ...pyinstaller -F xxx.py 4.在 dist文件夹下找到生成的exe文件 重点来了:生成的exe文件是不是还没有显示完就退出来了?
  • 这里写自定义目录标题 py文件为飞机大战小游戏,exe后运行闪退,cmd下也不行,求大佬指点
  • py转exe总结

    2019-09-20 18:02:01
    打包exe文件 cd到xxx.py目录执行 法一 cxfreeze xxx.py --target-dir dist xxx.py是要打包的py文件 dist是打包后生成的文件夹 如果用此方法打包 且程序中调用文件 需要在程序中调用文件的地方 改用相对路径(直接打...
  • py转exe权限报错解决

    2018-12-19 15:53:14
    想要分享给没有python环境的友人,就先得将.py打包成.exe。市面上的工具无非三大类:py2exe、cx_freeze和pyinstaller。 由于我的系统是win32,装了python3.7,现有的py2exe不支持。第一条路走不通。 由于我找不到...
  • Python中py文件转exe

    2018-01-28 09:32:04
    1.首先安装pip install pyinstaller 2.增加环境变量在path中添加scripts,例如c:\python36\scripts ...4.切换到需要转exepy文件夹下:shift +鼠标右键 选择打开cmd窗口 5.输入:pyintaller XXX.py即可转换
  • .py转.exe

    2021-04-03 14:49:30
    转换成可执行文件.exe 复制.py文件到Pyinstaller文件夹中(与pyinstaller.py同一层文件夹下),之后把路径切换到当前路径打开命令提示行,输入以下内容(xxx.py是文件名) python pyinstaller.py -F xxx.py ...
  • python转化exe工具 py2exe 0.6.9.win32-py2.7

    千次阅读 2015-07-17 10:37:28
    python转exe工具 py2exe 对应xp,python2.7版本的py2exe软件,可以将python转化为exe可执行文件。 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python...
  • py2exe 转换 pytetris

    2007-12-02 22:24:00
    首先,需要一个给 py2exe 使用的 python 脚本,我命名为 setup.py,内容如下:1from distutils.core import setup2import glob, shutil3import py2exe4setup(windows=["main.py"])5shutil.copytree(SFX, dist/...
  • 把python程序打包成exe,比较好用的库是py2exe 其操作步骤是: --> 编写python程序 --> 再额外编写一个导入了py2exe的python脚本(不妨如:setup.py)存在同一目录下 --> 运行这个脚本,打包生成的exe文件保存...
  • Python生成ExePy2exe

    2013-11-24 19:37:35
     py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。  py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygam
  • 主要介绍了使用Pyinstaller转换.py文件为.exe可执行程序过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Python中py文件转换成exe可执行文件的方法,需要的朋友可以参考下
  • 自动PYEXE 使用简单的图形界面和Python中的.py到.exe转换器。 阅读中文版的自述文件,点击 入门 先决条件 的Python:3.5-3.9 要使界面显示在图像中,您将需要使用chrome。 如果未安装chrome或提供了--no-chrome...
  • 安装、使用py转exe

    2019-02-27 12:46:24
    win7 64位 cmd下: 1.安装pyinstaller pip install pyinstaller 2.进入文件目录 cd G:\file\pycharmfile ...3.运行命令(pyinstaller -F ...pyinstaller -F G:\file\pycharmfile\exe.py 4.运行exe程序 ...
  • 但问题就在于,老总不会用 Python 啊,自己也不是经常将程序转换为 exe 的那种人,因此也想要节约学习成本,于是去网上查了一下有什么工具,几番波折,最后找到了一个:auto-py-to-exe 使用 auto-py-to-exe 为了不...
  • PY文件EXE文件

    2018-04-22 20:18:21
    原文:py2exe使用,用py2exe打包成一个exe, python3.4版本第一次尝试将*.py脚本生成exe文件。失败,3.6版本问题。工具: py2exe (用pip安装即可)用3.6版本时会有错误:IndexError: tuple index out of range首先写...
  • py2exe可以将python脚本转换成在Windows上的可独立执行.exe程序的工具。可以让Python脚本在没有安装python工具的Windows系统上运行,方便脚本共享。 操作环境 python2.7.12+Win32 Py2exe安装方法 1、py2exe模块...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,771
精华内容 8,708
关键字:

exe转py