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 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/
    __init__.py
    _pytransform.so, or _pytransform.dll in Windows, or _pytransform.dylib in MacOS
    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)

There is an extra folder pytransform called Runtime Package, which are the only required to run or import obfuscated scripts. So long as this package is in any Python path, the obfuscated script dist/foo.py can be used as normal Python script.

The original python scripts can be replaced with obfuscated scripts seamlessly.

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

Quick Start

Install:

pip install pyarmor

Obfuscate scripts:

pyarmor obfuscate foo.py

Run obfuscated scripts:

cd dist
python foo.py

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

pyarmor licenses --expired 2018-12-31 product-0001
cp licenses/product-0001/license.lic dist/pytransform/

cd dist/
python foo.py

Pack obfuscated scripts with PyInstaller:

pip install pyinstaller
pyarmor pack foo.py

cd dist/foo
./foo

There is also a web-ui package pyarmor-webui:

pip install pyarmor-webui

Start webui, open web page in browser:

pyarmor-webui

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-6.2.0.zip (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyarmor-6.2.0-py2.py3-none-any.whl (1.6 MB view details)

Uploaded Python 2Python 3

File details

Details for the file pyarmor-6.2.0.zip.

File metadata

  • Download URL: pyarmor-6.2.0.zip
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5

File hashes

Hashes for pyarmor-6.2.0.zip
Algorithm Hash digest
SHA256 43b6d3ad3d9fbca32ccf3a6ce2ec5ed15d7ea0ac0cfe9feeb613b9f22597cb92
MD5 d80db906e8dc8814e154a2bdb5b657c9
BLAKE2b-256 9ab657f50ecfdd9089c4a03369e608b654d4a62f755780f57f147fa5843641fb

See more details on using hashes here.

File details

Details for the file pyarmor-6.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pyarmor-6.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5

File hashes

Hashes for pyarmor-6.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 67ad59e3a175f119491d813007f6e3ba14335f4d7d8cc5d56119b97315127401
MD5 610826008a04651b3c26ae02b92f1826
BLAKE2b-256 f2fe44fa2b5fb89a1fc0a69181ecfba8d8f8072f60a6c15d243cf65d64eb89ae

See more details on using hashes here.

Supported by

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