PyArmor’s Documentation¶
Version: | PyArmor 7.6 |
---|---|
Homepage: | https://pyarmor.dashingsoft.com/ |
Contact: | pyarmor@163.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 obfuscatedscripts. 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 againstWindows
,MacOSX
, andLinux
.
PyArmor has been used successfully withFreeBSD
and embeddedplatform such asRaspberryPi
,BananaPi
,OrangePi
,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
- Callpyarmor 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 Modulepytransform
- 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
- 8.0.1 (developing)
- 7.7.4
- 7.7.3
- 7.7.2
- 7.7.1
- 7.7.0
- 7.6.1
- 7.6.0
- 7.5.1
- 7.5.0
- 7.4.3
- 7.4.2
- 7.4.1
- 7.4.0
- 7.3.6
- 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