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

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

技术杂谈小彩虹2021-08-17 10:51:41230A+A-

MedusaSorcerer的博客


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



点个赞呗~

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们