Pyarmor

Latest version: v8.5.8

Safety actively analyzes 630272 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 44

6.2.1

Not secure
* Fix issue(244): when specify only one platform the obfuscated scripts raise exception `No such file or directory: 'xxx/_pytransform.so'`

* Super mode supports windows.x86, linux.x86, linux.aarch64, linux.aarch32, linux.armv7

6.2.0

Not secure
In this version, **super mode** is introduced to improve the security. In this mode the structure of PyCode_Type is changed, and byte code or word code is mapped, it's the highest security level in PyArmor. There is only one runtime file required, that is extension module ``pytransform``, and the form of obfuscated scripts is unique, no so called `bootstrap code` which may make some users confused. All the obfuscated scripts would be like this

python
from pytransform import pyarmor
pyarmor(__name__, __file__, b'\x0a\x02...', 1)

It's recommended to enable this mode in suitable cases. Now only the latest Python versions are supported:

* Python 2.7
* Python 3.7
* Python 3.8

It may support Python 3.5, 3.6 later, but Python 3.0~3.4 is out of plan.

* Add new option `--obf-mode`, `--obf-code`, `--wrap-mode` to command `obfuscate`
* Add new value 2 for option `--advanced` to enable super mode, refer to [using super mode](https://pyarmor.readthedocs.io/en/latest/advanced.html#using-super-mode)
* Fix multiprocessing issue: `ValueError: __mp_main__.__spec__ is None` (232)
* The command `runtime` will generate default protection script `pytransform_protection.py`
* Add new option `--cross-protection` to command `obfuscate` to specify customized protection script
* The default cross protection code will not be injected the entry script if `--no-runtime` is specified as obfuscating the scripts. In this case, use option `--cross-protection` to specify one protection script
* Change the default capsule location from `~/.pyarmor_capsule.zip` to `~/.pyarmor/.pyarmor_capsule.zip`
* Add new functions `get_user_data`, `assert_armored` in runtime module `pytransform`
* Document [how to store runtime file license.lic to any location](https://pyarmor.readthedocs.io/en/latest/advanced.html#storing-runtime-file-license-lic-to-any-location)
* Remove the trailing dot from harddisk serial number, it may impact the license verified

6.1.0

Not secure
* Add external plugin script `assert_armored.py`
* Enhance the command `licenses`:
- The final argument could be empty, for example, `pyarmor licenses` will generate a default license to `licenses/pyarmor/license.lic`
- If the output is end with `license.lic`, it will not append any other path, just save it as it is. For example, `pyarmor licenses -O dist/license.lic` will save the final output to `dist/license.lic`
- Add new option `--fixed`, and document [how to use this option to improve the security](https://pyarmor.readthedocs.io/en/latest/advanced.html#binding-obfuscated-scripts-to-python-interpreter)
* In command `pack`, the default license will be generated with `--fixed` to improve the security

6.0.2

Not secure
* Refine the obfuscated code object to improve security
* Refine plugin code to make it clear
https://pyarmor.readthedocs.io/en/latest/how-to-do.html#how-to-deal-with-plugins
* Add internal plugin `assert_armored` and document basic usage
https://pyarmor.readthedocs.io/en/latest/advanced.html#checking-imported-function-is-obfuscated

6.0.1

Not secure
* Fix restrict mode 3 bug: the obfuscated script crashes or complains of this error: `This function could not be called from the plain script` (219)
* Fix bug: the obfuscated script raises unknown opcode error when the script is obfuscated by `obf_code=2` if there is recursive function call
* Fix command `init` and `config` bug: the entry script is set to `.` other than empty when passing `--entry=""`
* Fix bug: the traceback will print very long line if the obfuscated script raises exception
* Fix bug: in some special cases the obfuscated scripts which are obfuscated with`--enable-suffix` still conflict with other obfuscated packages
* Refine the error message as violating restrict mode
* The obfuscated script will raise exception `ReuntimeError` other than quit directly when something is wrong
**Now it will print a pretty traceback to find where is the problem**
* When generating `license.lic` for the obfuscated scripts, the license version information will be embedded into the license file implicitly
* Do not transfer exception type to `PytransformError` as pyarmor initializes failed

**Upgrade notes:**

The license file generated by this version doesn't work with the old obfuscated scripts. There are 2 solutions for this case:

* Still generating the license file with old version pyarmor
* Or obfuscating the scrips again by new version pyarmor

5.9.8

Not secure
* Fix restrict mode 3 bug: the obfuscated function failed if it's called from generator function even in the obfuscated script.
* In pack command it will try to use the encoding `coding: xxx` in the first comment line of `.spec` file

Page 17 of 44

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.