3.1. 概念定义

BCC 模式

一种加密的方法,可以把脚本中的函数转换成为 C 函数,然后使用优化选项编译生成机器指令。使用这种方式加密的函数是不可逆的,无法恢复成为原来的 Python 函数。

本地配置

一般在当前目录下会创建一个目录 .pyarmor ,用来存放本地配置,默认本地配置的文件是 .pyarmor/config

相同选项的本地配置会覆盖 全局配置

参考 pyarmor cfg

C

一种最古老的编程语言,现在依然生命力旺盛。

根目录

用来存放 Pyarmor 注册信息,全局配置文件等的路径,默认情况下是当前登陆用户的根目录下面的子目录 ~/.pyarmor

使用 sudo 命令可能会改变 Pyarmor 的根目录

激活文件

一个文本文件,购买任何 Pyarmor 许可证 之后,都会有一个相应的激活文件发送到注册邮箱。

激活文件主要用于第一次注册 Pyarmor 许可证 ,激活文件一旦完成初始登记,就无法在继续使用。

初始登记成功会同时生成相应的 注册文件 ,后面在任何设备上进行注册都需要使用 注册文件

加密插件

一个 Python 脚本, 在加密过程被调用,可以对输出的文件进行一些额外的操作。

参考 加密插件

脚本补丁

一个 Python 脚本,可以被嵌入到加密脚本中,执行一些额外的检查。

脚本补丁

JIT

JUST-IN-TIME 的缩写,是一种在运行时刻生成机器指令的技术,可以有效防止静态反编译工具对代码进行分析

开发机器

是指安装和运行 Pyarmor 的设备,在开发机器上对脚本进行加密

不是所有的平台都可以运行 Pyarmor,所有支持的运行环境请参考 生成加密脚本的环境

客户设备

是指运行加密脚本的设备

客户设备上面不需要安装 Pyarmor

扩展模块

一个使用 C 或者 C++ 语言编写的 Python 模块

模块私有配置

每一个加密模块可以有自己的私有配置,一般存放在 本地配置 的目录下面,和模块同名的 module.ruler 文件

相同选项的私有配置会覆盖 本地配置

Pyarmor

Pyarmor 是一个用来加密 Python 脚本的工具。

Pyarmor 的组成部分

Pyarmor 包

一个 Python 包 ,它包含下列包

Pyarmor 8.3 之后, pyarmor.cli.runtime 因为太大而被分为下列包:

Pyarmor 基础版

一种 Pyarmor 许可证 类型

Pyarmor 集团版

一种 Pyarmor 许可证 类型

Pyarmor 用户

使用 Pyarmor 的组织机构或者开发人员

Pyarmor 项目

项目文件存放在 https://github.com/dashingsoft/pyarmor/

这里有 Pyarmor 开源部分的代码, 提交的 问题报告 和最新的文档。

Pyarmor 许可证

由 Pyarmor 开发团队颁发,用于解锁 Pyarmor 试用版本中功能限制

请参考 Pyarmor 许可模式和许可证

Pyarmor 专家版

一种 Pyarmor 许可证 类型

Python

一种编程语言,官网地址 Python

Python 脚本

一个包含 Python 源代码的文件

外部概念 https://docs.python.org/3.11/glossary.html#term-module

Python 模块

要么是一个 Python 脚本 ,要么是一个 扩展模块

Python 包

外部概念 https://docs.python.org/3.11/glossary.html#term-package

全局配置

存放 Pyarmor 运行配置的全局文件,全局配置文件必须存放在 Pyarmor 的 根目录 ,默认的文件名称是 ~/.pyarmor/config/global

参考 pyarmor cfg

RFT 模式

一种不可逆的加密模式,可以重命名 Python 脚本中的函数,类,方法,变量和参数

外部密钥

一个用于存储 运行密钥 的文件,通常的名称为 pyarmor.rkey

外部密钥可以存放在下面的任何一个路径:

  • 运行辅助包 所在的路径

  • 环境变量 PYARMOR_RKEY 指定的路径,路径中不能使用 .. ,尾部不能是路径分隔符,一般用来指定一个绝对路径,例如 /var/data

  • 当前路径

或者是文件:当前可执行文件的全路径名称 + .pyarmor.rkey

运行辅助包

一个 Python 包 ,名称一般为 pyarmor_runtime_xxxxxx

一般生成加密脚本的同时,也会生成相应的运行辅助包,运行加密脚本需要有相应的运行辅助包。

运行辅助文件

是指运行加密脚本需要的所有其他文件

通常情况下它等价于 运行辅助包 ,如果使用了 外部密钥 ,那么也包含外部密钥

运行密钥

保存加密脚本的运行设置和相关约束限制,包括脚本的有效期,脚本绑定的设备信息,也包括控制加密脚本行为的其他标志和设置。

通常情况下运行密钥被嵌入到 运行辅助包 里面,但是也可以是一个独立文件形式的 外部密钥

运行平台

Pyarmor 定义的标准名称,用来标示运行 Pyarmor 和加密脚本的操作系统和 CPU 架构

下面列出了所有定义的运行平台:

  • Windows
    • windows.x86_64

    • windows.x86

  • Many Linuxs
    • linux.x86_64

    • linux.x86

    • linux.aarch64

    • linux.armv7

  • Apple Intel and Silicon
    • darwin.x86_64

    • darwin.aarch64 or darwin.arm64

  • FreeBSD
    • freebsd.x86_64

  • Alpine Linux (musl-c)
    • alpine.x86_64

    • alpine.aarch64

  • Android
    • android.x86_64

    • android.x86

    • android.aarch64

    • android.armv7

注册文件

一个 .zip 格式的压缩文件,主要用于除了初始登记之后的所有注册。

第一次初始登记使用 激活文件 ,激活成功之后生成注册文件,之后在任何设备上都要使用注册文件进行注册。