加密狗来加密保护Python程序
防止Python字节码被反编译的测试
本文主题:加密锁|加密狗|python程序加密|pyc代码反编译
python程序,运行时产生的字节码pyc文件,是很容易被反编译的,下面介绍一种快速加密保护python程序的pyc字节码文件。
Python程序是开源的,还用不用加密保护?因为Python程序运行产生的pyc文件很容易被反编译,代码看得一清二楚,所以加密保护是必要的,下面介绍一种python程序的加密保护方案,并测试其加密后的防止被反编译的效果。
使用硬件加密狗对Python程序进行加密,可以有效地防止python程序的PYC代码被反编译,保护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
打开API的示例程序,这里面是未加密的例子程序。
运行加密工具提供的批处理文件
批处理文件已将py文件转换成pyc字节码文件并已加密,同时将python程序打包成可执行程序exe文件。
分发应用程序
已将受保护的文件复制到文件夹 dist/<application_name>。
要部署受保护的应用程序,请复制文件夹
dist/<application_name> 到目标机器。
然后即可通过执行
dist/<application_name>/<application_name>
启动受保护的应用程序。
现在插上加密狗,例子程序main程序即可成功运行!
拔掉加密狗,会提示找不到加密狗。
下面测试加密后的pyc文件反编译效果
使用pycdc工具来测试,发现加密后的pyc文件无法被反编译,提示:Bad MAGIC!
再测试下未加密的pyc文件的反编译效果
可以看到源代码。
所以使用加密狗来加密python程序是可以防止被反编译的,来加密保护Python程序的代码效果是非常好的。