PyArmor’s Documentation¶
| Version: | PyArmor 5.6 |
|---|---|
| Homepage: | http://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
- Using PyArmor
- Runtime Module pytransform
- The Security of PyArmor
- The Performance of Obfuscated Scripts
- Understanding Obfuscated Scripts
- The Modes of Obfuscated Scripts
- How PyArmor Does It
- How To Pack Obfuscated Scripts
- Using Project
- The Differences of Obfuscated Scripts
- Advanced Topics
- Obfuscating Many Packages
- Distributing Obfuscated Scripts To Other Platform
- Obfuscating Scripts By Other Version Of Python
- 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
- Improving The Security By Restrict Mode
- Man Page
- Examples
- When Things Go Wrong
- Segment fault
- Could not find _pytransform
- The license.lic generated doesn’t work
- NameError: name ‘__pyarmor__’ is not defined
- Marshal loads failed when running xxx.py
- _pytransform can not be loaded twice
- Check restrict mode failed
- Protection Fault: unexpected xxx
- Warning: code object xxxx isn’t wrapped
- Error: Try to run unauthorized function
- Check license failed: Invalid input packet.
- License
- Support Platfroms
- Change Logs
- 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