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.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