Skip to main content

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

Project description

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 byte code of each 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.py
_pytransform.so, or _pytransform.dll in Windows, or _pytransform.dylib in MacOS

pyshield.key
pyshield.lic
product.key
license.lic

dist/foo.py is obfuscated script, the content is:

from pytransfrom 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

Support Platforms

  • 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, TS-4600 / TS-7600

Quick Start

Install:

pip install pyarmor

Obfuscate scripts:

python pyarmor.py obfuscate --recursive --src=examples/simple --entry=queens.py

Run obfuscated scripts:

cd dist
python queens.py

Generate an expired license and run obfuscated scripts with new license:

python pyarmor.py licenses --expired 2018-12-31 Customer-Jondy
cp licenses/Customer-Jondy/license.lic dist/

cd dist/
python queens.py

Pack obfuscated scripts with py2exe, cx_Freeze etc. The setup script of py2exe or cx_Freeze must be exists to run this command:

python pyarmor.py pack -t py2exe examples/py2exe/hello.py

There is a webui used to obfuscate script in gui mode. Start it:

pyarmor-webui

Note that the webui doesn’t include all the features of Pyarmor, it can help you to understand Pyarmor quickly.

More Resources

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyarmor-4.4.0.zip (1.3 MB view hashes)

Uploaded Source

Built Distributions

pyarmor-4.4.0-py2.py3-none-win_amd64.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3 Windows x86-64

pyarmor-4.4.0-py2.py3-none-win32.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3 Windows x86

pyarmor-4.4.0-py2.py3-none-manylinux1_x86_64.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3

pyarmor-4.4.0-py2.py3-none-macosx_10_11_x86_64.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3 macOS 10.11+ x86-64

pyarmor-4.4.0-py2.py3-none-macosx_10_11_intel.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3 macOS 10.11+ intel

pyarmor-4.4.0-py2.py3-none-any.whl (1.3 MB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page