Python 防止反编译

利用 cpython 包,先将 py 文件编译成 pyd 文件,再重新打包。
注:

  1. cpython 为 python 的一个
  2. pyd 文件,相当于 c 文件编译生成的 dll 文件,只能进行反汇编,而非反编译,安全性极大提高
  3. 在相同目录下同时存在相同名字的 py 文件和 pyd 文件,python 会自动引用 pyd 文件,而非 py 文件

使用 cpython 前,有一个前置条件:电脑需装有 visual c++ 桌面开发环境(默认安装即可)
推荐下载地址:Visual Studio 和 C++ Community(社区版)
在这里插入图片描述

安装完成后,在 pycharm 中下载 Cython 包(此处我使用的是清华镜像)

pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple Cython

在这里插入图片描述

载完毕后,在刚刚的源代码 main.py 的同级目录下创建 setup.py

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("main.py"))

同时,将 main.py 中的主运行代码调整到新的文件 test.py
在这里插入图片描述

在这里插入图片描述

接着在 pycharm 命令行中运行命令:python setup.py build_ext --inplace
同时将生成的 pyd 文件名字改为 main.pyd
在这里插入图片描述

此时,删除 dist、build 文件夹和其它多余的文件,重新打包
在这里插入图片描述

对于 test.exe 进行反编译
在这里插入图片描述

进入反编译的文件中,即可找到 main.pyd
在这里插入图片描述

至此,对于主要源码的反编译保护基本实现完成。