Skip to content

Releases: dashingsoft/pyarmor

Release 6.2.6

03 Jun 12:55
Compare
Choose a tag to compare
  • Fix get_license_info issue: the value of CODE is blank

Release 6.2.5

03 Jun 06:40
Compare
Choose a tag to compare
  • Add option --with-license in the command build
  • Fix pack issue: the option--with-license doesn't work in super mode
  • If the code object couldn't be obfuscated in advanced 2 (super mode), fix it automatically by inserting one redundant line [None, None] at the beginning of this code object
  • Ignore case when checking mac address if the license is bind to network card
  • Add key ISSUER in the return value of get_license_info

Release 6.2.4

30 May 12:17
Compare
Choose a tag to compare
  • Fix pack issue for Mac in super mode: RuntimeError: unexpected pytransform.so
  • Fix pack issue for windows 32-bit system: the default license doesn't work in other machines, it complains of License is not for this machine

Release 6.2.3

28 May 01:39
Compare
Choose a tag to compare
  • Add common option --home, so PYARMOR_HOME can be set in the command line
  • Fix pack issue: pack command may not work with super mode

Release 6.2.2

23 May 11:19
Compare
Choose a tag to compare
  • Fix advanced mode issue: advanced mode 1 doesn't work in pyenv and some platforms
  • Fix issue(#244): when obfuscating the scripts for cross platform and only one platform specified, the obfuscated scripts raise unexpected protection error.

Release 6.2.1

22 May 08:45
Compare
Choose a tag to compare
  • 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

Release 6.2.0

18 May 00:50
Compare
Choose a tag to compare

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

    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
  • 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
  • Remove the trailing dot from harddisk serial number, it may impact the license verified

Release 6.1.0

02 May 11:21
Compare
Choose a tag to compare
  • 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
  • In command pack, the default license will be generated with --fixed to improve the security

Release 6.0.2

25 Apr 01:07
Compare
Choose a tag to compare

Release 6.0.1

16 Apr 02:03
Compare
Choose a tag to compare
  • 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