跳转至

Python 网络许可签发到加密快速入门手册#

本文档主要说明Python开发语言,如何分发网络许可、以及加密的流程,下图为软件从许可分发、加密到交付最终用户的流程

一、注册转正及安装开发者工具盒#

1.1 注册账号#

本步骤演示开发者中心注册的流程,如已注册,请跳转至 1.2步

注册链接:https://developer.lm.virbox.com/reg.html 填写相应信息完成注册,下图为注册页面。

图片

1.2 转为正式开发商#

如已在开发者中心转为正式开发者,请跳转至1.3步

登录上一步注册的开发者账号(使用手机号登录),可以看见当前状态为测试状态,与下图状态一致

图片

由于 测试版 SDK 仅可作为学习和评估使用,不可用于正式版软件的保护和分发。如果您希望应用于正式版的软件上,您可以在平台上点击 “申请” 成为正式开发者,软许可的测试和使用也需要开发者状态为正式开发者。

以下是转为正式开发者的流程。

① 首先到“账号设置”中绑定邮箱

图片

② 点击“绑定”

图片

③ 输入当前登录密码,以及待绑定邮箱和验证码,点击 “获取验证邮件” ,此时您输入的邮箱中会收到一个绑定链接,如在您邮箱的收件箱中没有找到此链接,可以在垃圾邮箱中查找。

图片

④ 点击此链接即可绑定邮箱,点击后会跳转至绑定成功页面

图片

图片

⑤ 邮箱绑定成功后,请回到开发者平台主页面,点击“申请”,填写相应信息后,点击“提交”即可。

图片

图片

您提交转正“申请” 后,可以及时联系深思官网在线客服,或直接电话联系 010-56730936 以便快速将您转为正式开发者。

注意

测试开发者正式开发者的区别:

硬件锁:

  • 正式开发者:
    定制且唯一的控制锁、定制的用户锁

  • 测试开发者:
    控制锁以及用户锁是非定制的

云锁:

  1. 测试开发者只能添加一个产品;
  2. 测试开发者不提供统计功能;
  3. 测试开发者不提供软锁功能;
  4. 测试开发者最多可添加100个用户,批量导入单次不超过10个用户;
  5. 测试开发者最多可发布1000条许可;
  6. 测试开发者无法修改开发者名称;
  7. 测试开发者无法下载开发者产品信息包;
    注意:测试开发者转为正式开发者后,原来发布的许可会全部删除。

软锁:

测试开发者无法测试及使用。

SDK:

  • 正式版 SDK:
    拥有独立的开发者 API 密码、密钥及证书体系,每个开发者的开发包均唯一,以确保了SDK开发包以及库文件的定制,黑客不会有通用的破解手段。

  • 测试版 SDK:
    通用的SDK开发包

以上是转为正式开发者的步骤,下面将介绍工具盒的安装以及使用

1.3 下载Virbox 开发者工具盒获取 SDK#

转正成功后,即可在登录页面下载工具盒

工具盒的主要作用:Virbox 开发者工具盒是一款支持在线下载 SDK 工具套件、文档、API 及示例代码的下载程序,同时集成工具管理和检查更新功能,确保开发者第一时间获取最新工具及文档。

注:如开发者要做许可签发以及软件加密的操作请务必安装工具盒及SDK。

1.下载工具盒:

登录 Virbox LM 平台(链接: Virbox LM 平台

2.安装工具盒:

可修改安装目录,然后点击安装--->完成即可。

3.在开发者工具盒中登录 Virbox LM 平台转正账号:

4.点击下载SDK,检测后立即更新

工具盒包含了 加壳工具 DS 工具开发者管理工具 API 帮助工具 Virbox 用户工具( Windows ) Virbox 用户工具( Linux )以及 API 与相关文档。

开发者可以通过 Virbox 开发者工具盒快速打开相应工具及文档,完成加密授权等工作。各个工具说明可点击上面链接查看详细使用文档。

注意事项:

1.Virbox 开发者工具盒与 SDK 安装包不兼容,安装前会卸载已安装的 SDK 文件,并清空安装目录,请在安装 Virbox 开发者工具盒前备份SDK安装目录下的内容。

2.Virbox 开发者工具盒要求开发者使用新版本的开发锁(3.1.20及以上版本,支持PIN功能),即 2018-5-9 日之后首次下单购买开发锁的开发者可以正常使用,否则,开发者所持有的旧版本开发锁(版本号低于3.1.20)需更换新版本后才能使用。请联系深思更换开发锁,获得更高的安全保障。

3.如果您在安装工具盒或者下载文件的过程中遇到安全管家等软件报毒的情况,请选择允许操作。

至此,工具盒已经安装完成,软件开发商可以开始签发许可以及软件加密的操作了。

二、产品管理及云许可分发#

在做产品管理以及许可分发操作前,我们需要了解下什么是许可?

软件许可(Software License) 是一种数据凭证, 由软件作者与用户签订, 用以规定和限制软件用户使用软件(或其源代码) 的权利, 以及作者应尽的义务。

那么什么是云许可、软许可以及本地许可呢?
点击关键字进入相应许可说明:云许可软许可本地许可网络许可

了解什么是许可后,开发者需要清楚开发者软件与深思许可之间的关系,以便于很好的管理产品并与许可建立联系,其关系图如下:

APP A 在加壳以及许可分发时与许可ID1对应
APP B 在加壳以及许可分发时与许可ID2对应
APP C 在加壳以及许可分发时与许可ID3对应

以上描述的是软件产品与许可的关系,接下来是 添加产品许可分发 的操作说明,此步骤为将相应许可签发给指定用户的操作,以完成软件的授权。

下图为软件从加密、许可、中间件、反黑引擎的关系说明图:

2.1新建产品#

深思使用产品对应开发者的应用程序,使用模板来定制许可方式。对于一个被用户使用的产品来说,许可是开发者软件与用户沟通的核心媒介,开发者负责给指定用户发布许可,而被签发的用户按照许可约定的方式使用软件。

  1. 打开工具盒启动开发者管理工具;

图片

  1. 打开产品管理,点击"添加",填写产品信息;

注:许可ID由开发商自行定义,范围是正整数1-42亿数字范围,此许可ID需要与加密时使用的许可ID一致,许可ID是用户持有的许可和加密后软件的重要关联,此处我们设定许可ID为1

图片

>>请点击进入查看产品属性说明)

2.2 新建模板#

点击 “模板/授权” ,点击 “新建模板”,选择上一步新建的产品,设置许可可使用的时间、次数等

销售模板作用是设定许可的可用范围。开发者可以创建不同的销售模板,以适应不同的销售模式,例如永久、限时、限次、限功能等,如有相同授权模式的软件用户,可使用同一销售模板进行许可分发,节省开发者时间。

图片

并发方式选择为:网络

进程是指:在局域网内访问该许可的进程总数;
会话是指:可接入该网段内的windows系统登录用户会话数;

并发数最大可设置为255

图片

模板属性说明

>>请点击进入查看模板属性说明:

2.3发布许可#

选中2.2步骤创建好的模板,点击 “发布许可”,点击 “下一步”,勾选对应加密锁号,点击 “发布”,提示“发布成功”。

许可分发是许可管理的核心环节,给指定用户分发许可,用户将在许可的有效期内拥有软件的使用权,许可到期加密后软件将无法使用。

图片

选择目标设备,许可发布是针对用户锁的,在这一步您直接插入用户锁和控制锁,再选择发布即可。这样,对应产品的许可,就已经写入精锐5用户锁内了

注意:在开发商管理工具中新建的产品模板以及签发的许可等信息均保存在C:\ProgramData\senseshield\DeveloperManagerTool\db路径下的sense.db中,请开发商定期备份此db文件,如开发商计算机重新做系统以及其他未知情况,可能会导致此db文件丢失。

图片

至此,已经将网络锁许可签发至锁号为:337500000011的用户锁中,现在可以将该锁插在一台作为服务器的计算机上,检查同一局域网的计算机是否能找到该加密锁。

下图为同一局域网计算机可以正常连接该网络锁的情况:

图片

三、软件加密#

本文主要演示对python源码转的可执行exe加壳以及对.pyc的加密两种方式的流程:

3.1步主要说明对python源码转的可执行exe加壳流程。

3.2步主要说明对.pyc加密的流程。

3.1 对python源码to可执行exe加壳#

3.1.1打开加壳工具#

启动 Virbox 开发者工具盒 -> 点击 “加壳工具” ->点击 “启动加壳工具”

加壳工具主界面:

将待加密程序拖入到加壳工具中,本文以程序 use_collections.exe 为例

图片

3.1.2 插入控制锁#

插入白色控制锁

图片

3.1.3 执行PIN 验证#

PIN码激活以及设置流程见>>PIN码设置流程:

图片

3.1.4 选择相应许可形式#

许可类型勾选为网络锁

图片

3.1.4 填写许可ID#

该区域的许可ID应该与 产品管理及许可签发 操作时签发到“用户账号”中的许可ID相同,由于对应的产品许可ID为1,所以此处许可ID,填写为1。

图片

3.1.5 API密码#

与开发者编号相对应的32个字符表示的序列号, 保证了开发者的云授权平台的安全, 每个开发者有一个唯一的开发者密码。 可以登录 Virbox LM 平台 在左上角的查看信息中获取,将API密码复制到加壳工具对应位置。

图片

3.1.6 锁芯片号#

锁芯片号类似于9733c8010007020766e5000700050019, 能够唯一确定一把硬件锁, 如果这里指定了某把锁的芯片号, 那么保护后的程序只能使用该硬件锁才能打开。

锁芯片号可以将硬件锁插在电脑上,然后通过Virbox用户工具 -> 硬件锁 -> 锁序列号获取。

图片

3.1.7 被保护函数列表#

点击 “+” 按钮,加壳工具会对软件进行预分析,并列出所有分析到的函数。之后通过在函数列表后面的下列列表中选择相应的保护方式。为了演示只随机选择了一些函数进行保护。
建议开发者对自己写的比较重要函数选函数保护方式,其中安全强度从高到底顺序为:碎片代码->代码加密->虚拟化->混淆

注意:开发者需要在软件安全强度与运行速率之间平衡,如果对过多函数选择碎片代码可能会影响函数运行性能。

图片

图片

在对列表中的函数选择保护方式时,可以使用ctrl+鼠标左键。然后在选中的函数列表区域内点击鼠标右键 -> "保护方式",选择完成后,点击右下角的添加。 由于PE程序语言特性,无法直接显示函数名称,可以通过在编译时生成map文件,并添加到程序同一目录下来显示函数名。开发商可以根据函数名称来定制自己的加密策略。

3.1.8 加密选项#

加密选项的区域可以在整体程序的范围上进一步的保护。此处详细说明见 加壳工具手册

图片

3.1.9 消息选项#

当程序被加密后,程序就与我们之前创建的许可进行关联,当用户在使用我们的加密的程序时如果触发了一些限制时,会以该界面上的消息进行显示。

图片

3.1.10 软件加壳#

按照上面步骤配置好加壳工具后,点击 “立即加壳” 即可完成程序的加壳操作。

图片

加壳后的程序会在同一目录下多生成两个文件,如下图所示:

图片

接下来,我们需要将原始的程序进行备份或移除,再将被加壳程序(这里是use_collections.ssp.exe)改名为原始程序名use_collections.exe,use_collections.exe.ssp 为配置文件,可删除。

至此,软件加密操作已经完成,接下来需要对加密后的软件进行测试验证,请跳转至 测试加密后程序

3.2 对.pyc加密#

深思对 .pyc 文件的加密方式是使用 Virbox Protector 加壳工具对 python 安装目录下的 python.exe 进行加壳,再使用 DS Protector 对 .pyc 进行加密。

3.2.1 对 python 安装环境下的 python.exe 加壳:#

启动 Virbox 开发者工具盒 -> 点击 “加壳工具” ->点击 “启动加壳工具”

加壳工具主界面:

图片

将python安装路径下的 python.exe 拖入到加壳工具中(注意python版本)

图片

3.2.2 插入控制锁#

插入白色控制锁

图片

3.2.3 执行PIN 验证#

PIN码激活以及设置流程见>>PIN码设置流程:

图片

3.2.4 选择相应许可形式#

许可类型勾选为网络锁

图片

3.2.5 填写许可ID#

该区域的许可ID应该与 产品管理及许可签发 操作时签发到“用户账号”中的许可ID相同,由于对应的产品许可ID为1,所以此处许可ID,填写为1。

图片

3.2.6 API密码#

与开发者编号相对应的32个字符表示的序列号, 保证了开发者的云授权平台的安全, 每个开发者有一个唯一的开发者密码。 可以登录 Virbox LM 平台 在左上角的查看信息中获取,将API密码复制到加壳工具对应位置。

图片

3.2.7 锁芯片号#

锁芯片号类似于9733c8010007020766e5000700050019, 能够唯一确定一把硬件锁, 如果这里指定了某把锁的芯片号, 那么保护后的程序只能使用该硬件锁才能打开。

锁芯片号可以将硬件锁插在电脑上,然后通过Virbox用户工具 -> 硬件锁 -> 锁序列号获取。

3.2.8 被保护函数列表#

此处开发者可以不必设置

3.2.9 加密选项#

打开DS开关,设置密码,DS的主要作用是后面对.pyc 加密时使用。

图片

3.2.10 消息选项#

当程序被加密后,程序就与我们之前创建的许可进行关联,当用户在使用我们的加密的程序时如果触发了一些限制时,会以该界面上的消息进行显示。

图片

3.2.11 软件加壳#

按照上面步骤配置好加壳工具后,点击 “立即加壳” 即可完成程序的加壳操作。

图片

加壳后的程序会在同一目录下多生成两个文件,如下图所示:

图片

python.exe:是加密前的python.exe

python.exe.ssp:是加密.pyc 必不可少的配置文件

python.ssp.exe:是加壳后的python.exe

现在我们需要做的是将原 python.exe 剪切至其他文件夹,将python.ssp.exe 修改为python.exe , 下一步通过DS资源加密工具对 .pyc加密

3.2.12 .pyc加密#
1、打开DS加密工具#

图片

2、配置DS#

点击浏览 选择上一步对python.exe加壳时生成的 python.exe.ssp 即ssp文件。

图片

点击添加资源 选中要加密的 .pyc 文件。点击保护它 ,绿色进度条执行完成,则完成加密。

图片

加密后的文件名为原文件名称,原文件名称则变更为原文件名称.bak

至此,python源码转可执行exe,以及.pyc 加密流程已经完成,下一步需要对加密后的程序进行测试加密后程序,检查被保护的程序在没有许可或相应的限制下是否有正确的提示。

四、测试加密后程序#

软件用户运行加密后程序,需要在作为服务器的计算机端安装 Virbox 用户工具,插入用户锁,并将Virbox用户工具的 “服务设置” 设置为 “客户端/服务器模式” 然后点击 保存&重启 如下图所示:

注意:同一局域网的其他计算机也需要安装 Virbox 用户工具,并将Virbox用户工具的 “服务设置” 设置为 “客户端模式” 然后点击 保存&重启
正常识别到网络锁的情况应为下图所示:

启动加密后软件

启动加密后的程序后需要检查软件的状态是否可正常运行。

如未安装Virbox用户工具提示:连接失败

连接失败

如未插入用户锁 或用户锁内没有相应许可则提示:

图片