PyArmor’s Documentation¶
| Version: | PyArmor 7.2 |
|---|---|
| Homepage: | https://pyarmor.dashingsoft.com/ |
| Contact: | jondy.zhao@gmail.com |
| Authors: | Jondy Zhao |
| Copyright: | This document has been placed in the public domain. |
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.
PyArmor supports Python 2.6, 2.7 and Python 3.
PyArmor is tested against Windows, Mac OS X, and Linux.
PyArmor has been used successfully with FreeBSD and embedded
platform such as Raspberry Pi, Banana Pi, Orange Pi, TS-4600 / TS-7600 etc.
but is not fullly tested against them.
Contents:
- Installation and Uninstallation
- Using PyArmor
- Advanced Topics
- Using Super Mode
- How to use outer license file
- Obfuscating Many Packages
- Solve Conflicts With Other Obfuscated Libraries
- Distributing Obfuscated Packages
- Distributing Obfuscated Scripts To Other Platform
- Obfuscating Scripts By Other Python Version
- Run bootstrap code in plain scripts
- Let Python Interpreter Recognize Obfuscated Scripts Automatically
- Obfuscating Python Scripts In Different Modes
- Using Plugin to Extend License Type
- Bundle Obfuscated Scripts To One Executable File
- Bundle obfuscated scripts with customized spec file
- Improving The Security By Restrict Mode
- Using Plugin To Improve Security
- Call pyarmor From Python Script
- Check license periodly when the obfuscated script is running
- Work with Nuitka
- Work with Cython
- Work with PyUpdater
- Binding obfuscated scripts to Python interpreter
- Customizing cross protection code
- Storing runtime file license.lic to any location
- Register multiple pyarmor in same machine
- How to get license information of one obfuscated package
- How to protect data files
- How to remove docstrings
- Using restrict mode with threading and multiprocessing
- Repack PyInstaller bundle with obfuscated scripts
- Build obfuscated scripts to extensions
- Distributing Obfuscated Package With pip
- Run Obfuscated Scripts By Different Python Versions
- Build Pyarmored Wheel
- Examples
- Using Project
- Man Page
- Understanding Obfuscated Scripts
- How PyArmor Does It
- Runtime Module pytransform
- Support Platforms
- The Modes of Obfuscated Scripts
- The Performance of Obfuscated Scripts
- The Security of PyArmor
- When Things Go Wrong
- License
- Change Logs
- Incompatible issues
- 7.3.3
- 7.3.1
- 7.3.0
- 7.2.4
- 7.2.3
- 7.2.0
- 7.1.2
- 7.1.1
- 7.1.0
- 7.0.3
- 7.0.2
- 7.0.1
- 6.8.1
- 6.8.0
- 6.7.4
- 6.7.3
- 6.7.2
- 6.7.1
- 6.7.0
- 6.6.2
- 6.6.1
- 6.6.0
- 6.5.6
- 6.5.5
- 6.5.3
- 6.5.2
- 6.5.1
- 6.5.0
- 6.4.4
- 6.4.3
- 6.4.2
- 6.4.1
- 6.4.0
- 6.3.7
- 6.3.6
- 6.3.5
- 6.3.4
- 6.3.3
- 6.3.2
- 6.3.1
- 6.3.0
- 6.2.9
- 6.2.8
- 6.2.7
- 6.2.6
- 6.2.5
- 6.2.4
- 6.2.3
- 6.2.2
- 6.2.1
- 6.2.0
- 6.1.0
- 6.0.2
- 6.0.1
- 5.9.8
- 5.9.7
- 5.9.6
- 5.9.5
- 5.9.4
- 5.9.3
- 5.9.2
- 5.9.1
- 5.9.0
- 5.8.9
- 5.8.8
- 5.8.7
- 5.8.6
- 5.8.5
- 5.8.4
- 5.8.3
- 5.8.2
- 5.8.1
- 5.8.0
- 5.7.10
- 5.7.9
- 5.7.8
- 5.7.7
- 5.7.6
- 5.7.5
- 5.7.4
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.8
- 5.6.7
- 5.6.6
- 5.6.5
- 5.6.4
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.7
- 5.5.6
- 5.5.5
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.6
- 5.4.5
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4.0
- 5.3.13
- 5.3.12
- 5.3.11
- 5.3.10
- 5.3.9
- 5.3.8
- 5.3.7
- 5.3.6
- 5.3.5
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.9
- 5.2.8
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 4.6.3
- 4.6.2
- 4.6.1
- 4.6.0
- 4.5.5
- 4.5.4
- 4.5.3
- 4.5.2
- 4.5.1
- 4.5.0
- 4.4.2
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.3
- 4.2.2
- 4.2.1
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.0.3
- 4.0.2
- 4.0.1
- 3.9.9
- 3.9.8
- 3.9.7
- 3.9.6
- 3.9.5
- 3.9.4
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.8.10
- 3.8.9
- 3.8.8
- 3.8.7
- 3.8.6
- 3.8.5
- 3.8.4
- 3.8.3
- 3.8.2
- 3.8.1
- 3.8.0
- 3.7.5
- 3.7.4
- 3.7.3
- 3.7.2
- 3.7.1
- 3.7.0
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.1
- 3.5.0
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.1
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.0.1
- 2.6.1
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.4.1
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.2.1
- 2.1.2
- 2.1.1
- 2.0.1
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0