Skip to content

Latest commit

 

History

History
232 lines (139 loc) · 7.29 KB

concepts.rst

File metadata and controls

232 lines (139 loc) · 7.29 KB

Concepts

.. glossary::

  Activation File

    A text file used for initial registration :term:`Pyarmor License`

    When purchasing any :term:`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 :file:`~/.pyarmor/config/`

    It's always relative to :term:`Home Path`

  Home Path

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

  Local Path

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

  Hook script

    Hook script is a python script which locates in sub-path ``hooks`` of :term:`local path` or :term:`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 :term:`Runtime Key`

    The outer key file must be located in one of path

      - :term:`Runtime package`
      - :envvar:`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

      - :term:`Pyarmor Home`
      - :term:`pyarmor package`

  Pyarmor Basic

    A :term:`Pyarmor License` type

  Pyarmor Group

    A :term:`Pyarmor License` type

  Pyarmor Home

    Host in GitHub: |Home|

    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 :doc:`Pyarmor License Types <../licenses>`

  Pyarmor Package

    A :term:`Python Package`, it includes

      - :mod:`pyarmor`
      - :mod:`pyarmor.cli`
      - :mod:`pyarmor.cli.core`
      - :mod:`pyarmor.cli.runtime`

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

      - :mod:`pyarmor.cli.core.freebsd`
      - :mod:`pyarmor.cli.core.android`
      - :mod:`pyarmor.cli.core.windows`
      - :mod:`pyarmor.cli.core.themida`
      - :mod:`pyarmor.cli.core.linux`
      - :mod:`pyarmor.cli.core.alpine`
      - :mod:`pyarmor.cli.core.darwin`

    All of them are published in the PyPI_

  Pyarmor Pro

    A :term:`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 :term:`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 :term:`Runtime Package`. If :term:`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 :term:`Runtime Package`, but it also could be stored to an independent file :term:`outer key`

  Runtime Package

    A :term:`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 :term:`Pyarmor Users`, generally it's in customer side

.. module:: pyarmor
    :synopsis: A command line tool used to obfuscate Python scripts. This package provides cli command for both Pyarmor 7 and Pyarmor 8

.. module:: pyarmor.cli
    :synopsis: A command line tool used to obfuscate Python scripts. This package provides only Pyarmor 8 cli

.. module:: pyarmor.cli.core
    :synopsis: A binary wheel to provide prebulit extension modules `pytransform3` which is required to run Pyarmor

.. module:: pyarmor.cli.runtime
    :synopsis: A universal wheel is used for cross-platform obfuscation, it provides prebuilt extension modules `pyarmor_runtime` which is required to run the obfuscated scripts in all supported platforms

.. module:: pyarmor.cli.core.android
    :synopsis: It's required in Android for Pyarmor, it provides prebuilt extension modules both `pytransform3` and `pyarmor_runtime` for Android

.. module:: pyarmor.cli.core.freebsd
    :synopsis: It's required in FreeBSD for Pyarmor, it provides prebuilt extension modules both `pytransform3` and `pyarmor_runtime` for FreeBSD

.. module:: pyarmor.cli.core.windows
    :synopsis: It's used for cross-platform obfuscation, only provides all prebuilt extensions `pyarmor_runtime` in Windows

.. module:: pyarmor.cli.core.themida
    :synopsis: It's used for cross-platform obfuscation, only provides all prebuilt extensions `pyarmor_runtime` in Windows and protected by Themida

.. module:: pyarmor.cli.core.linux
    :synopsis: It's used for cross-platform obfuscation, only provides all prebuilt extensions `pyarmor_runtime` in Linux with glibc

.. module:: pyarmor.cli.core.alpine
    :synopsis: It's used for cross-platform obfuscation, only provides all prebuilt extensions `pyarmor_runtime` in Alpine Linux (musl-c)

.. module:: pyarmor.cli.core.darwin
    :synopsis: It's used for cross-platform obfuscation, only provides all prebuilt extensions `pyarmor_runtime` in Darwin