A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
New Feature
--pack
support specfile. If plain script could be packed by one .spec
file, it could be used by --pack
to pack the obfuscated script. For example, pyarmor gen --pack foo.spec foo.py
Fix issues
--pack
could not work with --enable-rft
, --assert-import
or assert-call
Class.Name
wont work with --obf-code 2
Fix issues:
--pack
with PyInstaller 6.6 raises exceptionNew feature:
runtime:patch_extension
to enable/disable patching extension pyarmor_runtime
, the main purpose is to solve code sign issue in Darwin--pack
supports new value FC
, DC
to clean output path without promptFix issues:
New feature:
Option --pack
support constant onefile
and onedir
, both of them work for PyInstaller 6.0+
In previous versions --pack
only accepts executable generated by PyInstaller < 6.0.
Since v8.5.4, it accepts string constant onefile
or onefolder
, support PyInstaller 6.0+ and previous versions too. User need not call PyInstaller, pyarmor will do everything. For example, obfuscate plain script main.py
and pack the output to one executable just by this one command:
pyarmor gen --pack onefile main.py
Upgrade Notes:
The behaviour of option --private
is changed
In previous versions the plain script could NOT import the module obfuscated by --private
. Now the plain script could import this obfuscated module, but could not visit module attribute __dict__
.
If still need keep old behaviours, run command pyarmor cfg private_module_as_restrict=1
once before generating the obfuscated scripts.
Fix issues:
pytransform3
Fix issues:
pyarmor man
raises normpath
issuseFix issues:
unsupported arch "x86"
ModuleNotFoundError: No module named 'distutils'
Upgrade notes:
-e/--expired
behaviour. In the previous versions, it checks internet time, but now it will check local time by default. After run pyarmor cfg nts="pool.ntp.org"
, it will be same as previous versions.pyarmor
, it will print suggestion solutions in the consoleNew features:
post_script
which could be used to patch each obfuscated scriptobf_key_mode
is set by pyarmor cfg obf_key_mode=1
-b/--bind-device
in the man pageman
, pyarmor man
could help Pyarmor users to learn and use Pyarmor by web-ui, quickly find solutions when something is wrong, and report issues in standard formFix issues:
--private
doesn't work with --pack
(PyInstaller), if scripts are obfuscated by --private
, the executable bundle will raise protection error unauthorized use of script
no module named 'distutils'
Fix issues:
--restrict
option is usedinvalid co header size
when obfuscating special scriptsinvalid device info "xxxxxx"
when binding to too short harddisk serial numberpyarmor.cli.hdinfo
could not get "Multiple Mac addresses", it raises error Unsupported hardware type with name
New features:
python -m pyarmor.cli.hdinfo
__dict__
which could be got from plain scriptsFix issues:
pip install pyarmor
in FreeBSD, the dependent package pyarmor.cli.core.freebsd
is not installed automaticallypyarmor reg pyarmor-regfile-xxxx.zip
may raise error invalid license token
in some Linux network, for example, some AWS cloud runners