Pyarmor
A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
Install / Use
/learn @dashingsoft/PyarmorREADME
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
- Seamless Replacement: Obfuscated scripts remain as standard
.pyfiles, allowing them to seamlessly replace the original Python scripts in most cases. - Balanced Obfuscation: Offers multiple ways to obfuscate scripts to balance security and performance.
- Irreversible Obfuscation: Renames functions, methods, classes, variables, and arguments.
- C Function Conversion: Converts some Python functions to C functions and compiles them into machine instructions using high optimization options for irreversible obfuscation.
- Script Binding: Binds obfuscated scripts to specific machines or sets expiration dates for obfuscated scripts.
- Themida Protection: Protects obfuscated scripts using Themida (Windows only).
Supported Platforms
- Python 2 and Python 3[^1]
- Windows
- Various Linux distributions, including embedded systems and Raspberry Pi
- Apple Intel and Apple Silicon
- Supported architectures: x86_64, aarch64, armv7, etc.[^2]
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
- Install Pyarmor:
pip install pyarmor
- Obfuscate the
foo.pyscript:
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....')
- 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
- Ask in learning system or look through check list
- Consult the Pyarmor Documentation.
- Check the FAQ for answers to common questions.
- Try the documentation index or the detailed table of contents.
- If you still can't find the information you need, see asking questions on GitHub.
- Report bugs following the issue template.
- For business and security inquiries, send an email to pyarmor@163.com.
There is also one third-party learn platform
- Ask Pyarmor Guru, it is a Pyarmor-focused AI to answer your questions (not made by Pyarmor Team, the answer doesn't stand for Pyarmor Team's opinion)
Resources
- Website
- Documentation
- Documentation 8.x
- Documentation 7.x
- Pyarmor 9.1 new features
- Pyarmor Learning System
中文资源
Changelog
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 Release Plan
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
337.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
