Python程序加密保护

Python程序pyc字节码防止被反编译

 

主题词:USB加密锁|加密狗|python程序加密|pyc代码反编译

python程序是目前较流行的程序语言,代码很容易被反编译,那么如何来防止python程序被反编译呢?下面来演示下如何来加密pyc字节码文件,加密后是无法被反编译的。

Python程序是开源的,还用不用加密保护?因为Python程序运行产生的pyc文件很容易被反编译,代码看得一清二楚,所以加密保护是必要的。

使用硬件加密狗对Python程序进行加密,可以有效地防止python程序的PYC代码被反编译,保护python软件的版权,加密后的程序必须有加密狗才能使用。

 

Python程序pyc字节码文件加密保护_python

python程序保护方案支持windows与Linux平台,下面以windows平台为例。

保护Python应用程序包含以下步骤:

1.收集应用程序的Python字节码 (PYC) 模块。

2.使用 Envelope 外壳加密工具保护Python解释程序并包含数据文件保护模块,从而使解释程序可以执行加密的数据文件。

3.使用dfcrypt工具保护应用程序的Python字节码PYC文件。

可以使用将受保护的解释程序与加密的代码封装在一起的方式分发受保护的应用程序(例如使用 pyinstaller)。

说明   一定要保护编译的Python字节码(PYC 文件),而不是明文Python源码(PY 文件)。Python 解释程序先将 PY 转换成 PYC 文件,然后再写到磁盘上以加快后续执行速度。如果提供的是受保护的 PY 文件而不是 PYC 文件,Python 解释程序会生成明文 PYC 文件,然后将其写到磁盘,然后即可对其进行分析。

使用圣天诺加密锁,首先下载安装开发工具如下图

下载地址:
http://chinadlp.com/?list-DriveDownload.html

Python程序pyc字节码文件加密保护_反编译_02

打开API的示例程序,这里面是未加密的例子程序。

Python程序pyc字节码文件加密保护_Python_03

加密方法是这样的:运行加密工具提供的批处理文件

Python程序pyc字节码文件加密保护_Python_04

Python程序pyc字节码文件加密保护_Python_05


Python程序pyc字节码文件加密保护_python_06

Python程序pyc字节码文件加密保护_反编译_07

批处理文件已将py文件转换成pyc字节码文件并已加密,同时将python程序打包成可执行程序exe文件。

分发应用程序

已将受保护的文件复制到文件夹dist/<application_name>

要部署受保护的应用程序,请复制文件夹

dist/<application_name> 到目标机器。

然后即可通过执行

dist/<application_name>/<application_name>

启动受保护的应用程序。

现在插上加密狗,例子程序main程序即可成功运行!

如果拔掉加密狗,会提示找不到加密狗。

Python程序pyc字节码文件加密保护_python_08

 

 

Python程序pyc字节码文件加密保护_python_09

下面测试加密后的pyc文件反编译效果:

使用python的反编译的pycdc工具来测试,发现加密后的pyc文件无法被反编译,提示:Bad MAGIC!

 

Python程序pyc字节码文件加密保护_python_10

我们再测试下未加密的pyc文件的反编译效果,可以看到源代码。

 

Python程序pyc字节码文件加密保护_反编译_11

 

经过以上方法加密python的字节码文件,实现python程序防止被反编译的目的。