3.1. Concepts

Activation File

A text file used for initial registration Pyarmor License

When purchasing any Pyarmor License, an activation file is be sent to registration email after payment is completed.

BCC Mode

An obfuscation method of Pyarmor by converting Python functions to C functions

extension module

A module written in C or C++, using Python’s C API to interact with the core and with user code.

Build Machine

The device in which to install pyarmor, and to run pyarmor to generate obfuscated scripts.

Global Path

Store Pyarmor global configuration file, default is ~/.pyarmor/config/

It’s always relative to Home Path

Home Path

Store Pyarmor registration file, global configuration, other data file generated by pyarmor, the default path is in user home path ~/.pyarmor/

Local Path

Store Pyarmor local configuration file, default is in the current path ./.pyarmor/

Hook script

Hook script is a python script which locates in sub-path hooks of local path or global path.

When obfuscating the scripts, if there is any same name script exists, it’s called module hook script, and will be inserted into the obfuscated scripts.

The hook script will be executed first when running the obfuscated scripts.

JIT

Abbr. JUST-IN-TIME, just generating machine instructions in run time.

Outer Key

A file generally named pyarmor.rkey to store Runtime Key

The outer key file must be located in one of path

  • Runtime package

  • PYARMOR_RKEY, no trailing slash or backslash, and no .. in the path. Generally it’s an absolute path, for example, /var/data

  • Current path

Or a file sys.executable + .pyarmor.rkey. For example, dist/myapp.exe.pyarmor.rkey

Platform

The standard platform name defined by Pyarmor. It’s composed of os.arch.

Supported platforms list:

  • Windows
    • windows.x86_64

    • windows.x86

  • Many Linuxes
    • 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

Plugin script

A python script will be called in building stage to do some customization work.

Pyarmor

Pyarmor is product domain, the goal is to provide functions and services to obfuscate Python scripts in high security and high performance. The mission of Pyarmor is let Python use easily in commercial product.

Pyarmor is composed of

Pyarmor Basic

A Pyarmor License type

Pyarmor Group

A Pyarmor License type

Pyarmor Home

Host in GitHub: https://github.com/dashingsoft/pyarmor/

It serves open source part of Pyarmor, issues and documentations.

Pyarmor License

Issued by Pyarmor Team to unlock some limitations in Pyarmor trial version.

Refer to Pyarmor License Types

Pyarmor Package

A Python Package, it includes

Since Pyarmor 8.3, pyarmor.cli.runtime is split into serval packages:

All of them are published in the PyPI

Pyarmor Pro

A Pyarmor License type

Pyarmor Users

Developers or organizations who use Pyarmor to obfuscate their Python scripts

Python

A program language.

Python Script

A file that serves as an organizational unit of Python code.

Refer to https://docs.python.org/3.11/glossary.html#term-module

Python Package

Refer to https://docs.python.org/3.11/glossary.html#term-package

Registration File

A zip file generated after initial registration is successful. It’s used to register Pyarmor License except initial registration.

RFT Mode

An obfuscation method of Pyarmor by renaming function/class in the scripts

Runtime Files

All the files required to run the obfuscated scripts.

Generally it equals Runtime Package. If outer key is used, plus this outer key file.

Runtime Key

The settings of obfuscated scripts. It may include the expired date, device information of bind to obfuscated scripts. Also include all the flags to control the behaviors of obfuscated scripts.

Generally it’s embedded into Runtime Package, but it also could be stored to an independent file outer key

Runtime Package

A Python Package generally named pyarmor_runtime_000000.

When obfuscating the scripts, it’s be generated at the same time.

It’s required to run the obfuscated scripts.

Target Device

In which run the obfuscated scripts distributed by Pyarmor Users, generally it’s in customer side