A command line tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

How to Do Quick Start

Seamless Replacement

The obfuscated script is a normal python script. With an extra module and a few extra runtime files, clear Python scripts can be replaced with obfuscated ones seamlessly

And PyArmor works well with py2exe, py2app, PyInstaller, cx_Freeze etc.

Runtime Obfuscation

The byte code of each code object will be obfuscated as soon as code object completed execution, and f_locals of frame is cleared at the same time

Pack Obfuscated Scripts

PyArmor could pack obfuscated scripts into one bundle with PyInstaller etc.

Different Licenses

Expire obfuscated scripts

PyArmor can set expired date for obfuscated scripts. After that, obfuscated scripts can not be run

Bind to fixed machine

PyArmor can bind obfuscated scripts to serial number of harddisk, mac address of network card, ip address etc..

Extend other license type

The obfuscated script is black box for end user, add any authentation code in your Python script

Supported Platforms

See a list of Prebuilt Dynamic Library in each platform




Embedded System

PyArmor Provides High Security by JIT and Cross Protection TechnicalsLearn More

Our Customers

Previous Next

Quick Start

Install PyArmor

The easy way is by pip

pip install pyarmor
Obfuscate Scripts

Obfuscate all the .py files in the path src by command obfuscate

pyarmor obfuscate src/
Run Obfuscated Scripts

Run obfuscated script dist/ as normal Python script

cd ./dist/
Pack Obfuscated Scripts

Pack obfuscated scripts by command pack

pyarmor pack src/
Generate Different Licenses

First get hardware information by command hdinfo

Then generate a new license with command licenses

Next overwrite default license dist/license.lic

Finally run obfuscated script with new license

pyarmor hdinfo

pyarmor licenses \
        --expired "2018-12-31" \
        --bind-disk "100304PBN2081SF3NJ5T" \
        --bind-mac "70:f1:a1:23:f0:94" \
        --bind-ipv4 "" \

cp licenses/customer-jondy/license.lic ./dist/

cd ./dist/

Run pyarmor-webui to start web page. Only for basic usage, full features still need shell command way

It will start a light weight web server in localhost, and open a page in web browser.