专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

【玩】Pyinstaller 加密打包成可执行文件

39_1.png


了解 Python 的都知道 Pyinstaller 可以将 .py 文件打包成 windows 下可执行的 .exe 文件, 但是在我们不想让他人反编译获取源码的时候就显得无能为力, 此时我们可以了解 .pdy 文件。

PYD

pyc 是二进制文件, 是由 Python 编译器进行编译后生成的文件, 加载速度快。pyo 是优化编译后的二进制文件, 可以通过 python -O file.py 生成。pyd 则是 Python 的动态链接库, 由其他语言编写。

.pyd 可不可以反编译呢?

39_2.png

这是文档上的一段描述, .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 文件
  • 重命名生成的 .pydmain_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 文件后执行速度过慢, 当然我仅仅是推荐, 你可以使用任何自定义的方式编译你想要的效果。

点个赞呗~

未经允许不得转载:搜云库技术团队 » 【玩】Pyinstaller 加密打包成可执行文件

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们