Pyinstaller加密打包成反编译可执行文件
作者:MedusaSorcerer 发布时间:2022-06-20 14:23:06
前言
了解 Python 的都知道 Pyinstaller 可以将 .py 文件打包成 windows 下可执行的 .exe 文件, 但是在我们不想让他人反编译获取源码的时候就显得无能为力, 此时我们可以了解 .pdy 文件。
PYD
pyc 是二进制文件, 是由 Python 编译器进行编译后生成的文件, 加载速度快。pyo 是优化编译后的二进制文件, 可以通过 python -O file.py 生成。pyd 则是 Python 的动态链接库, 由其他语言编写。
那 .pyd 可不可以反编译呢?
这是文档上的一段描述, .pyd 由 C 或者 C++ 编译组成, 至于它是否完全不可反编译, 我相信是不可能的, 仅是加大了反编译的难度。
打包
你需要安装 Cython 以及 pyinstaller 两个扩展包作为依赖。 Docs
将主要代理编写至 main_code.py 文件中, 建议提供入口函数 main()
编写 build.py 代理并键入以下内容:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name='随你写什么',
ext_modules=cythonize([
"main_code.py", # 你的主要代码封装文件名
])
)
执行 python3 build.py build_ext --inplace 生成 .pyd 文件
重命名生成的 .pyd 为 main_code.pyd
新建执行脚本文件 run.py 并键入以下内容:
from main_code import *
if __name__ == '__main__':
main()
此时你可以尝试修改 main_code.py 成别的名字, 并运行 run.py 文件, 你会发现运行正常。
执行 pyinstaller -D -i xxx.ico -w run.py
最后你会发现你的代码中没有 .pyc 的主要逻辑代码。
说明
为了使用打包的时候使用 -D 而不使用 -F?
在生成唯一 .exe 文件后执行速度过慢, 当然我仅仅是推荐, 你可以使用任何自定义的方式编译你想要的效果。
来源:https://juejin.cn/post/6850418116796219399
猜你喜欢
- win32com和微软的word接口文档有什么关系先回答一个网友私信问题: win32com和微软的word接口文档有什么关系win32co
- transforms.Resize()的简单使用简单来说就是调整PILImage对象的尺寸,注意不能是用io.imread或者cv2.imr
- 文本:每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行。思路:根据字典和字符串切割
- 阅读目录什么是设计模式单体模式:工厂模式:单例模式观察者模式(发布订阅模式)策略模式模板模式代理模式外观模式设计模式太多了,貌似有23种,其
- ImageGrab模块用于将当前屏幕的内容或者剪贴板上的内容拷贝到PIL图像内存。当前版本只支持windows系统。一、ImageGrab模
- python3的编码问题。打开python开发工具IDLE,新建‘codetest.py'文件,并写代码如下:import sysp
- 下面通过实例代码给大家分享Python切片操作去除字符串首尾的空格的方法,具体内容如下所示:#利用切片操作,实现一个trim()函数,去除字
- 原因:list 获得的数据为空: 显示值为 [ ]不同的判断--- is None----not两者结果不一样分析:总之:not 判断的是内
- 本文实例为大家分享了celery实现订单超时取消的具体代码,供大家参考,具体内容如下Celery官方文档中关于定时任务使用的说明项目目录结构
- 两个树莓派,在同一个局域网内,传输文件,采用socket方式。client端代码:import socketimport osimport
- python通过安装使用paramiko模块,将本地文件上传到服务器上import paramikoimport datetimeimpor
- 该代码主要是基于python实现判断指定文件夹下是否存在指定后缀的文件。代码如下:import osYour_Dir='你的文件夹/
- 困扰我很久问题终于在昨天被解决了。其实问题很简单<% =now %>老是显示12小时制,总是出现上午、下午。这个问题虽然很小,但
- # -*- coding: utf-8 -*-import random#数字类class NumberItem: &
- 在工作中有时候会给图上添加文字,常用的是PS工具,不过我想通过代码的方式来给图片添加文字。需要使用的Python的图像库:PIL.更加详细的
- 本文实例讲述了Python list列表中删除多个重复元素操作。分享给大家供大家参考,具体如下:我们以下面这个list为例,删除其中所有值为
- 定义字典并直接输出,结果输出结果中文是乱码展示d={'name':'lily','age':
- 1.通过pip安装python第三方模块paramikopip install paramiko2.创建脚本##导入paramiko、tim
- 微服务架构在现代软件开发中日益普及,它将复杂的应用程序拆分成多个可独立部署的小型服务。本文将介绍如何使用 Python 的 FastAPI
- #-*- encoding: utf-8 -*-'''Created on 2014-4-24@author: Le