5. 许可模式和许可证
5.1. 简介
本文档仅适用于 Pyarmor 8.0 之后的版本。
下载和安装本软件表示自动接受试用许可协议,试用版本有如下的限制
加密功能对脚本大小有限制,不能加密超过限制的大脚本。
混淆字符串功能在试用版中无法使用。
RFT 加密模式,BCC 加密模式在试用版无法使用。
不可以用于加密商用产品。特别的,如果商用产品的累计销售额小于基础版许可证费用乘以30,可以暂时使用;但是一旦累计销售额超过阀值,就不可以在继续使用。
运行辅助包的名称 "pyarmor_runtime_000000" 不可以被设置和修改
不可以使用本软件提供任何形式的加密服务,不管是通过应用程序还是网络服务。总之在任何情况下都不允许使用本软件加密其他人的脚本。
不支持 obf-code 大于 1 的任何加密模式
试用版本中功能限制,需要通过许可授权来解锁相关功能。但是第 (6) 条限制没有任何许可证可以解锁。
5.2. 许可模式
许可授权需要通过购买相应的许可证来获取,购买许可证可以通过指定的网站购买。
本软件提供三种许可证,分别解锁不同的功能
基础版许可证
基础版许可证解锁限制 (1) (2) (4) (5) (7).
加密脚本的时候需要在线验证许可证
专家版许可证
专家版许可证解锁限制 (1) (2) (3) (4) (5) (7).
加密脚本的时候需要在线验证许可证
集团版许可证
集团版许可证解锁限制 (1) (2) (3) (4) (5) (7).
集团版许可证支持运行不受限制的 Docker,基础版和专家版许可证在一天之内最多运行 100 次 Docker 容器。
加密脚本不需要在线验证许可证
基础版和专家版许可证需要收集设备信息并发送到服务器进行验证,除了许可证文件之外,不会上传任何用户脚本到服务器
集团版许可证会绑定到设备,在虚拟机上或者硬件经常发生变化的设备可能无法工作。特别的,只要 Docker 主机可以使用集团版许可证,那么Docker 容器也可以
Pyarmor 许可证只允许安装在开发环境去生产加密脚本,不允许安装在运行加密脚本的客户设备,运行加密脚本的设备不需要安装 Pyarmor,运行加密脚本的时候也不会去验证 Pyarmor 的许可证
每一个许可证都有一个 18 位字符长度唯一的编号,并授权给有且只有一种产品使用。也就是说,任何一种使用本软件进行保护的产品都有自己唯一的许可证编号,不允许两种不同产品使用相同的许可证编号。
许可证编号和被授权的产品名称会嵌入到加密脚本中,除此之外,加密脚本中没有任何用户相关的注册信息,例如注册名称和邮箱等
如果用户有多种产品并且已经为第一种产品购买了许可证,那么当用户的第二种产品的销售收入小于当前许可证费用的30倍,那么第二种产品可以暂时使用第一种产品的许可证。一旦销售收入超过许可证费用的30倍,第二种产品就必须购买自己的许可证。这个原则也适用于用户的其他所有产品。
一种产品在本协议中指的是独立销售的软件所有组成部分,包括开发需要的各种设备,以及提供支持的服务器,云服务器等。一种产品也包括产品的当前版本,历史版本,以及将来的升级版本。一种产品也包括基础功能相同,组合不同特殊功能而形成的不同版本的产品,这种产品的特征是不同版本对外销售名称一样,只是通过辅助名称等来进行区分。
同一个基础版和专家版许可下面,同时使用本软件的设备数目不超过 100 个。同时使用本软件是指从现在开始在 24 小时内曾经运行 pyarmor 命令的设备。这里的设备是指安装 Pyarmor 并使用 Pyarmor 对脚本进行加密的设备,不是指运行加密脚本的客户机器。
同一个集团版许可证下面,最多只能有 100 台设备注册,编号从 1 到 100。一旦设备注册,将永久占用该设备号。如果已经注册的设备重装系统,或者更换硬件系统,那么需要为其重新分配新的设备号。
参见
关于一种产品的示例说明
不用于销售的所有的 Python 脚本都属于一种特殊的产品 non-profits
Pyarmor 是一种产品,它所包含
Pyarmor 基础版,专家版和集团版 都属于 Pyarmor 这一种产品
pyarmor-webui,为 Pyarmor 提供图形界面的工具,也属于 Pyarmor 这一种产品
Pyarmor 的后台订单系统是用 django 开发的一个程序,这也属于 Pyarmor 这一种产品
开发 Pyarmor 所使用的笔记本电脑,测试 Pyarmor 使用的台式机,以及运行后台订单系统的云服务器都属于 Pyarmor 这一种产品
Pyarmor 7.x 和 Pyarmor 8.x 也都属于 Pyarmor 一种产品。
Microsoft Office 产品系列不是一种产品,它包括的各个产品,例如 Microsoft Word 和 Microsoft Excel 是功能完全不同的两个产品,所以 Microsoft Office 不是一种产品。而 Microsoft Word 是一种产品,它的各个版本系列 Micorsoft Word 2003,Word 2007 等也都属于 Microsoft word 这一种产品。
5.2.1. 适用集团版许可证的设备
集团版许可证只能用于设备硬件信息保持不变的系统,使用下面的方法检查一个设备是否适用集团版许可证
在设备上安装 Pyarmor 8.4.0+ 的试用版本
运行下面的命令得到机器标识符:
$ pyarmor reg -g 1 ... INFO current machine id is "mc92c9f22c732b482fb485aad31d789f1" INFO device file has been generated successfully
重新启动设备,重复上面的命令查看机器标示符
如果每一次重启之后机器标识符都保持不变,那么该设备可以使用集团版许可证,否则无法使用基本版许可证
对于 Docker 容器来说,只需要按照上面的方法检查 Docker Host。如果 Docker Host 可以使用集团版许可证,那么就可以在其上运行不受限制的 Docker 容器,具体使用方法请参考 使用许可证 中的 运行不受限制的 Docker 容器
如果 Docker Host 的机器标识符每次重启都会发生变化,那么集团版许可证无法运行任何 Docker 容器
大多数的物理设备,云服务器以及使用相同磁盘映像的虚拟机(qemu,virtualbox,vmware)可以使用集团版许可证,如果是在 CI 服务器的工作流中使用,默认的 runner 可能无法工作,类似 Github 上面的 self-host runner 应该可以工作,请参阅相应的 CI 服务器文档,并使用上面的方法进行验证。
5.2.2. 不同许可证的功能列表
功能 |
试用版 |
基础版 |
专家版 |
集团版 |
备注说明 |
---|---|---|---|---|---|
基本加密功能 |
有 |
有 |
有 |
有 |
|
脚本有效期 |
有 |
有 |
有 |
有 |
|
绑定到设备 |
有 |
有 |
有 |
有 |
|
JIT 保护 |
有 |
有 |
有 |
有 |
|
Themida 保护 |
有 |
有 |
有 |
有 |
|
Assert 保护 |
有 |
有 |
有 |
有 |
|
大脚本文件 |
无 |
有 |
有 |
有 |
|
混淆字符串 |
无 |
有 |
有 |
有 |
|
obf-code > 1 |
无 |
有 |
有 |
有 |
|
RFT加密模式 |
无 |
无 |
有 |
有 |
|
BCC加密模式 |
无 |
无 |
有 |
有 |
|
无限制 Docker |
是 |
否 |
否 |
是 |
notes
- 1
基本加密功能,是指没有使用任何选项的加密功能。
- 2
脚本有效期,是指能够限制加密脚本运行有效期的功能。
- 3
绑定到设备,是指能够限制加密脚本运行在指定设备的功能。
- 4
JIT 保护,是指使用动态代码生成机制对加密脚本进行保护的功能。
- 5
Themida 保护,是指使用第三方工具 Themida 对 Widnows 动态库进行保护的功能。
- 6
Assert 保护,是指保护加密脚本不会被替换或者非法注入的保护功能。
- 7
大脚本文件,是指加密脚本的大小超过一定值,“无”表示不能加密大脚本,“有”表示可以加密大脚本。
- 8
混淆字符串,是指对脚本中的字符串常量进行混淆保护的功能。
- 9
从 Pyarmor 8.2 开始,obf-code 支持使用多种不同方式对函数进行加密
- 10
RFT 加密模式,是指通过重命名脚本中的函数,类,方法和变量的名称来保护脚本的功能。
- 11
BCC 加密模式,是指把 Python 脚本中部分函数转换成为对应的 C 函数,通过编译直接生成机器指令代码,从而对脚本进行保护的功能。
- 12
这个功能是从 Pyarmor 8.3 开始支持,集团版许可证可以运行不受限制的 Docker,基础版和专家版一天之内最多运行 Docker 容器 100 次。需要注意的是 Docker Host 的机器必须能够使用集团版许可证,具体可参阅上面的章节
适用集团版许可证的设备
5.3. 购买
在浏览器中打开 Pyarmor 官网的购物车,支持微信和支付宝
在购物车页面选择需要的许可证类型,填写注册名称,并完成支付。
支付成功之后,在一个工作日之内激活文件会发送到注册邮箱,请按照激活文件中的方法和步骤完成注册和激活,或者参考这里 使用许可证 。
购买软件许可的费用是一次性收费,可以永久在购买本软件时候的版本中使用,但是许可证可能在任何一个升级版本中失效,Pyarmor 不承诺许可证可以在今后所有的升级版本中使用。
授权模式 |
不含税价格(人民币元) |
含税价格(人民币元) |
说明 |
---|---|---|---|
基础版 |
298 |
359 |
|
专家版 |
512 |
562 |
|
集团版 |
868 |
918 |
如果需要使用信用卡或者 Paypal 进行支付,可以直接在 MyCommerce 官网进行购买,这里的价格单位是美元,并且不能开国内增值税发票,只提供国际通用的电子发票(订单,发票相关事宜全部由 MyCommerce 处理)
授权模式 |
不含税价格(美元) |
说明 |
---|---|---|
基础版 |
52 |
|
专家版 |
89 |
|
集团版 |
158 |
重要
一旦许可证被激活之后,就不再接受退款请求。
仅当许可证没有被激活并且购买日期在三个月之内的订单,可以退款。
5.4. 升级老版本许可证
不是所有的老版本的许可证都可以升级为新的许可证。
符合下列条件的老版本许可证可以免费升级到 Pyarmor 基础版许可证:
遵循新的 Pyarmor 最终用户许可协议
原来的许可证编号是以
pyarmor-vax-
开头的原来许可证的注册文件
pyarmor-regcode-xxxx.txt
存在且不能被使用超过 100 次原来的许可证的购买日期在 2023年6月1日之前,原则上在 Pyarmor 8 发布之后依旧购买的老许可证不支持升级。
如果无法免费升级,请购买新的许可证。
老版本的许可证不支持升级到专家版和集团版。
5.4.1. 免费升级到基础版
首先找到原来的许可证激活文件 pyarmor-regcode-xxxx.txt
然后安装 Pyarmor 8.2+
按照新的 Pyarmor 最终用户许可协议 ,需要为每一个许可证指定产品名称。这也意味着,如果老的许可证是被用于多种产品的话,升级之后就只能用于其中的一个,其他产品还需要购买新的许可证。
假定使用许可证的产品名称是 XXX
,那么使用下面的命令进行升级:
$ pyarmor reg -u -p "XXX" pyarmor-regcode-xxxx.txt
升级成功之后会生成新的 注册文件
在其他设备直接使用新的 注册文件 进行注册:
$ pyarmor reg pyarmor-regfile-xxxx.zip
运行下面的命令检查升级后的许可证:
$ pyarmor -v
注册成功之后所有的加密操作自动应用当前许可证,每一次加密操作需要联网验证许可证。