A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
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.
Look at what happened after foo.py is obfuscated by PyArmor. Here are the files list in the output path dist:
foo.py _pytransform.so, or _pytransform.dll in Windows, or _pytransform.dylib in MacOS pytransform.py pytransform.key license.lic
dist/foo.py is obfuscated script, the content is:
from pytransform import pyarmor_runtime pyarmor_runtime() __pyarmor__(__name__, __file__, b'\x06\x0f...', 1)
All the other extra files called Runtime Files, which are required to run or import obfuscated scripts. So long as runtime files are in any Python path, obfuscated script dist/foo.py can be used as normal Python script.
The original python scripts can be replaced with obfuscated scripts seamlessly.
For details to visit protect-python-scripts-by-pyarmor.md
- Python 2.5, 2.6, 2.7 and Python3
- win32, win_amd64, linux_i386, linux_x86_64, macosx_x86_64
- Embedded Platform: Raspberry Pi, Banana Pi, Orange Pi, TS-4600 / TS-7600
pip install pyarmor
pyarmor obfuscate examples/simple/queens.py
Run obfuscated scripts:
cd dist python queens.py
Pack obfuscated scripts with PyInstaller, py2exe, cx_Freeze etc.:
pip install pyinstaller pyarmor pack examples/py2exe/hello.py
Generate an expired license and run obfuscated scripts with new license:
pyarmor licenses --expired 2018-12-31 Customer-Jondy cp licenses/Customer-Jondy/license.lic dist/ cd dist/ python queens.py
Start webui, open web page in browser for basic usage of PyArmor:
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|pyarmor-5.2.9-py2.py3-none-any.whl (2.2 MB) Copy SHA256 hash SHA256||Wheel||py2.py3|
|pyarmor-5.2.9.zip (2.2 MB) Copy SHA256 hash SHA256||Source||None|