Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图1

置顶 Ark_py Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图2 于 2020-07-11 20:01:10 发布 Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图3 761 Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图4 收藏 6

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

Python这门解释型语言有一个致命的缺点:使用Python开发的软件包含了pyc文件,pyc文件能够被反编译成为源代码,这样对于一些企业开发的软件来说非常危险(这也是为什么Python不常被软件开发公司使用,除了谷歌),今天我们要学习一下Python保护源代码的一招:py转pyd文件。

我们需要用到的工具有:

  1. Microsoft Visual Studio环境
  2. Cython
  3. 由pip下载的setuptools
  4. 一个自制的python小程序
  5. Python环境

我们需要借助C语言生成pyd代码,因为Python一般是C语言实现的,我们先要下载所需的环境。

我们需要下载的是Microsoft Visual Studio(不是VSCode),下载了之后我们进行安装,进入https://visualstudio.microsoft.com/zh-hans/,选择Community 2019,
Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图5
然后安装Visual Studio Installer,看到这个界面。

Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图6
我们需要下载的工作负载是C++桌面开发这个选项,但是不是所有都要选择,只要选择三个项目:MSVC生成工具,Win10 SDK(版本根据你的win10的确切版本而定)还有C++分析工具,这三个缺一不可,总共需要下载将近3.54GB的内容,但是我觉得有点小题大做,但是这没办法,微软目前只有Visual Studio for Python27这个软件,没有适用于Python3的,所以我们必须下载这些东西。

静静等待下载的时候,我们可以创建一个小小的Python程序,在这里命名为setup.py,写入如下内容

  1. import setuptools
  2. from Cython.Build import cythonize
  3. from setuptools.extension import Extension
  4. extensions = [Extension('名字', ['文件路径'])]
  5. setuptools.setup(ext_modules = cythonize("文件路径"))

在这些代码中我们可以发现,我们还缺少Cython和setuptools,我们需要使用python环境的pip来下载。Win+R打开运行,输入cmd运行命令提示符,然后输入指令:

pip install cython
pip install —upgrade setuptools(通常setuptools是已经安装好的,最好更新一下)

操作上述指令的时候遇到任何问题,可以参照这篇文章:
pip安装pyinstaller等第三方模块老是报错?多种常见错误,进来看看解决方案!

但是前提是你安装python环境的时候勾选了Add Python to PATH,否则你输入pip它不鸟你。。。

安装好了cython,setuptools和VS环境中的工作负载之后,我们就可以开始转换代码了,我们传参运行我们制作的setup.py文件,进入cmd切换到所在目录,然后输入指令(下图为完整生成过程,发生错误的可以以此做个对照):
python setup.py build_ext
Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图7
然后我们可以看到首先将py文件转换为c代码,然后结合obj文件使用VS环境中的cl.exe进行编译,最后完成了代码的生成。

完成之后我们发现多出来一个build文件夹,我们进入lib文件夹,之后就能发现我们编译好的pyd文件,把这个文件移出来,可以当成py文件进行导入,只是你不能找到源代码而已,这么做就保证了源代码安全。
Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图8
Python3源代码保护:将py源代码文件转换为pyd动态链接库文件以保护代码_Ark_py的博客-CSDN博客 - 图9
好了今天为大家介绍的py转换为pyd文件的教程就到这里结束了,感谢大家阅读,如果遇到什么问题可以在评论区留言。

本文为作者原创,非经本人允许,禁止转载。

—————————————END———————————————-