Pyarmor

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

Learn More Quick Start

Seamless Replacement

The obfuscated script is a normal python script. With an extra module pytransform.py 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

It can protected those Python source files distributed as package

Pack Obfuscated Scripts

Pyarmor could pack obfuscated scripts with PyInstaller, py2exe, py2app, cx_Freeze 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..

Supported Platforms

See a list of Prebuilt Dynamic Library in each platform

Windows

Linux

MacOS

Embedded System

How to protect Python scripts by Pyarmor? Learn More

Our Customers

Quick Start

Install Pyarmor

The easy way is by pip

pip install pyarmor
Obfuscate Scripts

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

pyarmor obfuscate project/src/hello.py
Run Obfuscated Scripts

Run obfuscated script dist/hello.py as normal Python script

cd ./dist/
python hello.py
Pack Obfuscated Scripts

Pack obfuscated scripts by command pack

pyarmor pack -t PyInstaller project/src/hello.py
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 queens.py with new license

pyarmor hdinfo

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

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

cd ./dist/
python queens.py
            
WebUI

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.

pyarmor-webui