【玩】Pyinstaller 加密打包成可执行文件
站长
· 阅读数 3
了解 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
文件后执行速度过慢,
当然我仅仅是推荐,
你可以使用任何自定义的方式编译你想要的效果。
点个赞呗~