PyArmor is a command line tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts. It protects Python scripts by the following ways:
- Obfuscate code object to protect constants and literal strings.
- Obfuscate co_code of each function (code object) in runtime.
- Clear f_locals of frame as soon as code object completed execution.
- Verify the license file of obfuscated scripts while running it.
Also refer to The Security of PyArmor
- Python 2.7 and Python3.0~Python3.10
- Prebuilt Platform: win32, win_amd64, linux_i386, linux_x86_64, macosx_x86_64
- Embedded Platform: Raspberry Pi, Banana Pi, Orange Pi, TS-4600 / TS-7600 and more
Refer to support platforms
pip install pyarmor
pyarmor obfuscate foo.py
Run obfuscated scripts
Pack obfuscated scripts into one bundle
pip install pyinstaller pyarmor pack foo.py
Obfuscate scripts with an expired license
pyarmor licenses --expired 2018-12-31 r001 pyarmor obfuscate --with-license licenses/r001/license.lic foo.py
There is also a web-ui package pyarmor-webui
pip install pyarmor-webui
Start webui, open web page in browser (snapshots)
More usage, refer to
License & Purchase
PyArmor is published as shareware, free trial version never expires, but there are some limitations:
- The trial version could not obfuscate the big scripts
- The trial version uses same public capsule other than private capsule
- The trial version could not download the latest dynamic library of extra platforms
- The super plus mode is not available in the trial version
For details, refer to PyArmor License.
It describes the fixed issues, new features, incompatible issues in different versions.
It's recommended to read this carefully before upgrading pyarmor.
If there is any question, first check these questions and solutions, it may help you solve the problem quickly.