dashingsoft / pyarmor

A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
http://pyarmor.dashingsoft.com
Other
3.08k stars 271 forks source link
obfuscate obfuscate-scripts obfuscation python python-script

Pyarmor

Pyarmor is a command-line tool designed for obfuscating Python scripts, binding obfuscated scripts to specific machines, and setting expiration dates for obfuscated scripts.

Key Features

Supported Platforms

For more information, check out the Pyarmor Environments.

[^1]: Some features may be exclusive to Python 3. [^2]: Some features may be exclusive to specific architectures.

Quick start

  1. Install Pyarmor:

    pip install pyarmor
  2. Obfuscate the foo.py script:

    pyarmor gen foo.py

This command generates an obfuscated script like this at dist/foo.py:

from pyarmor_runtime import __pyarmor__
__pyarmor__(__name__, __file__, b'\x28\x83\x20\x58....')
  1. Run the obfuscated script:
    python dist/foo.py

For more information, check out the getting started tutorial.

License

Pyarmor is published as shareware. The free trial version never expires, but has some limitations.

Refer to Pyarmor licenses for information on license types, features, limitations, and purchasing a Pyarmor license.

Please read the Pyarmor EULA.

Getting Help

  1. Consult the Pyarmor 8.0 Documentation.
  2. Check the FAQ for answers to common questions.
  3. Try the documentation index or the detailed table of contents.
  4. If you still can't find the information you need, see asking questions on GitHub.
  5. Report bugs following the issue template.
  6. For business and security inquiries, send an email to pyarmor@163.com.

Resources

中文资源

Changelog

Pyarmor 8.0 introduces significant changes. It has been rewritten and new features are implemented through the new commands: gen, reg, cfg. These commands only work for Python 3.7 and above.

Users of versions prior to 8.0 should read the Import Notes section to decide whether to upgrade Pyarmor.

Each major version comes with a separate changelog file, detailing fixed issues, new features, and compatibility issues between different versions.

Make sure to read the changelog carefully before upgrading Pyarmor:

Full changelogs at releases

Upcoming features at Pyarmor 8.x Release Plan

Important Notes for Users of Pyarmor Prior to 8.0

Going forward, only bug fixes will be provided for older commands, such as obfuscate and licenses. No new features will be added to these commands, but they will continue to be usable.

Upon the release of Pyarmor 8.0, there are three scenarios for existing users:

1. Never upgrade to version 8.0+

2. Upgrade to version 8.0 but only use old features

By default, the pyarmor command only accepts the new commands.

To continue using older commands like obfuscate and licenses, you can:

3. Upgrade to version 8.0 and use new features