Python pyd文件的制作,保护程序源代码

Python pyd文件的制作,保护程序源代码,第1张

在Python程序开发后, 有可能想要保护程序的源代码, 避免被uncompyle6等库反编译。

目录
    • pyd文件是什么
    • 安装Visual Studio C编译器
    • 生成pyd文件

pyd文件是什么

pyd文件类似于DLL, 一般用C/C++语言编译而成, 可用作模块导入Python程序中。
pyd文件仅适用于特定版本的Python, 不同版本间互不兼容, 如Python3.8不支持3.7版本的文件。
示例:

>>> import _tkinter # 导入pyd文件
>>> _tkinter.__file__
'D:\...\_tkinter.pyd'

pyd文件用C/C++语言编译而成, 难以被反编译, 在保护Python程序源码上有很好的效果。

安装Visual Studio C编译器

未安装C编译器时, 编译pyd会出现报错。
你可以使用Visual Studio的C编译器, 或MinGW编译器。由于Visual Studio的C编译器安装方便, 而MinGW较复杂, 这里介绍安装Visual Studio的方法。
所需文件: pan.baidu.com/s/1_D--OE4uXhKq6S-AXnAY-Q?pwd=1uhk
启动VisualStudioSetup.exe, 必须选择C++开发, 可选Python开发, 点击安装。

等待安装完成。

Visual Studio虽然体积较大, 但包含了比较完备、全面的C/C++编译器, 适用于Windows平台。

生成pyd文件

生成pyd文件, 需要使用distutils模块, 和Cython库。安装Cython, 可使用pip install cython
test.py

def main():
    print("Hello world from pyd file!")

main.py

import test
test.main()

以下是生成pyd文件的主程序:

from distutils.core import setup
from Cython.Build import cythonize
import sys,os,traceback

setup(
    name = 'test',
    ext_modules = cythonize('test.py'),
)

将生成的pyd文件重命名为test.pyd(也可能不需要重命名), 运行main.py, 就可以看到pyd文件中的结果了。
使用PyInstaller等库打包exe的时候, 先打包main.py作为主程序。即使exe被某个库反编译, 得到的只是主程序main.py, 而pyd文件中的代码是很难被反编译的。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1295381.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-10
下一篇2022-06-10

发表评论

登录后才能评论

评论列表(0条)

    保存