跳转至

Python源码保护方案#

方案背景#

Python 是一种面向对象的解释型计算机程序设计语言,Python 语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。 在计算机内部,Python解释器把源代码转换成称为字节的中间形式,然后再它翻译计算机使用的机器语言并运行。这使得Python更加简单 ,也使得Python程序更加易于移植。 Python也是FLOSS(自由 /开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动把一部分用于新自由软件中 ,所以对软件开发者自主研出的源码保护起来是十分必要的。

未经深思保护#

图片
生成的dis文件可以用 notepad++ 查看出源码
图片

解决方案#

由上图可看出,没有经过加密的.pyc文件可以很轻易的通过Easy Python Decompiler v1.3.2工具反编译出源码 ,深思对.pyc保护的方式是通过DS Protector工具进行保护 ,防止源码被反编译 。

DS Protector是北京深思数盾自主研发的程序数据保护工具 ,它弥补了加壳VirboxProtector的功能, Virbox Protector是对程序编译后的二进制代码行保护,配合DS Protector数据保护工具就形成了代码,数据三位一体的防护。

而对于 python 开发的程序保护方式主要是对 开发的程序保护方式主要是对 pyc 文件进行加密,可以保护主要代码逻辑不被反编译,从而最大程度保护软件开发者的合法权益。

通过 Virbox Protector先对解析文件的python.exe进行加密,加密时打开 DS Protector 插件功能,然后通过DS Protector对pyc文件进行加密,并使用壳生成的配置将后文件进行加密后的python.exe pyc文件和授权三者关联起来。

经深思保护#

加密后使用 Easy Python Decompiler v1.3.2工具反编译 pyc文件失败。
图片

对可执行的exe进行保护#

未经深思保护#

通过打包工具py2exe和跨平台的PyInstaller工具都可以将 python 脚本打包成可执行文件,打包后的可执行文件不依赖 python,可以直接在没装python 的机器上运行。 注:不同的打包方式原理不同,源码存放位置也不同,所以需要保护具体模块也不同。

使用 Py2exe打包后,只需使用unpy2exe-master,将exe文件放入待反编译的程序目录下,执行 python unpy2XXX.exe件,反编译为 pyc pyc文件;

使用 PyInstaller打包后,将pyinstxtractor.py 放入待反编译的程序目录下,执行 pyinstxtractorXXX.exe,会对应的生成一个文件夹,在文件夹中找到名字和程序相同pyc文件。 然后使用 Easy Python Decompiler v1.3.2工具反编译 pyc 文件,成功后同目录下生成一个带后缀dis的文件,生成的dis文件可以用notepad++查看出源码。

图片

图片

图片

图片

图片

解决方案#

python脚本打包的可执行文件,可以直接使用 Virbox Protector 对exe 程序进行加壳保护,加壳软件中内置了虚拟机、碎片代码执行混淆等多种安全技术,能有效阻止 exe 程序被反编译,无法dump内存。
注:不同的打包方式原理不同,源码存放位置也不同所以需要保护的具体模快也不同

经深思保护:#

加密之后再尝试解压 XXX.exe 失败 ,已经无法进行反编译,使用常规工具也是无法分析的。
图片

Virbox Protector核心优点#

  1. 一键加密你的代码逻辑,无法反编译,无法dump dump内存。
  2. 完整授权方案,支持云/软锁授权 /USB 加密锁授权/网络锁授权,支持限制时间次 数,并发限制。
  3. 将杀毒软件理念引入加密锁行业,具有主动防御功能的 AHS,提供主动防御及特征数据库等, 真正将安全防护做到动态。
  4. 自带反黑引擎,驱动级别调试秒杀常见器(WinDbg/OllyDbg/X64Dbg )。
  5. 内置了虚拟机、碎片代码执行混淆等多种安全技术。简单易用,安性高。
  6. 碎片代码执行 —— 利用成熟的代码提取技术,从软件中抽大量经过加密混淆后在安全环境中执行,融合 Vibrox 加密引擎、虚拟化和驱动技术,让软件执行过程更安全。

技术服务支持#

深思提供每周一至周五 9:00 ~ 20:00,每周六 10:00 ~ 19:00的技术支持服务。
联系电话:010-56730936
邮箱:tech_support@sense.com.cn