License

The software is distributed as Free To Use But Restricted. Free trialversion never expires, the limitations are

  • The trial version could not obfuscate the big scripts.
  • The scripts obfuscated by trial version are not private. It meansanyone could generate the license file for these obfuscated scripts.
  • The trial version could not download the latest dynamic library ofextra platforms, the old versions still are available.
  • The super plus mode is not availaible in the trial version.
  • Without permission the trial version may not be used to obfuscatethe Python scripts of any commercial product.

About the license file of obfuscated scripts, refer toThe License File for Obfuscated Script

A license code is required to unlock all the above limitations.

There are 2 basic types of licenses issued for the software:

  • A personal license for home users. The user purchases one license touse the software on his own computer. When placing an order of thiskind of license, please fill real name as registration name, thissoftware is only authorized to this registration name.

    Home users may use their personal license to obfuscate all thepython scripts which are property of the license owner, to generateprivate license files for the obfuscated scripts and distribute themand all the required files to any other machine or device.

    Home users could NOT obfuscate any python script which is NOTproperty of the license owner.

  • A enterprise license for business users. The user purchases onelicense to use the software for one product of an organization. Whenplacing an order of this kind of license, please fill orginizationname plus product name, this software is only authorized to thisregistration name.

    One product include the current version and any other latterversions of the same product.

    Business users may use their enterprise license on all computers andembedded devices to obfuscate all the python scripts of this product,to generate private license files for these obfuscated scripts anddistribute them and all the required files to any other machine anddevice.

    Without permission of the software owner the license purchased for oneproduct should not be used for other product. Business users shouldpurchase new license for different product.

    In any case, the software is only used to obfuscate the Python scriptsowned by the authorized person or enterprise.

Purchase

To buy a license, please run command

pyarmor register –buy

Or open the following url in any web browser

https://order.shareit.com/cart/add?vendorid=200089125&PRODUCT[300871197]=1

For personal license, please fill the registeration name with real name whenplacing an order.

For enterprise license, please fill the registeration name with enterprise name,and also fill “License To Product” with the product name which will use thissoftware.

A registration file generally named “pyarmor-regcode-xxxx.txt” will be sent byemail immediately after payment is completed successfully.

Save it to disk, then run the following command to register PyArmor

pyarmor register /path/to/pyarmor-regcode-xxxx.txt

Check the registration information:

pyarmor register

After registration successfully, remove all the obfuscated scripts by trialversion, then obfuscate them again.

Note

If the version of PyArmor < 6.5.2, please open the registration file“pyarmor-regcode-xxxx.txt” by any text editor, following the guide in it toregister PyArmor

Important

The registration code is valid forever, it can be used permanently, but itmay not work with future versions, it may need to purchase new license ifusing a future version.

Upgrade Notes

The license purchased before2019-10-10 don’t support to upgrade the latestversion. If need use the latest version, purchasing a new license, and runpyarmor register command. If you have issued anylicense.lic generated byold license, and still want it works, runpyarmor register with option-u toregister new license. For example,

pyarmor register -u /path/to/pyarmor-regcode-xxxx.txt

Technical Support

If there is any question, first check thesequestions and solutions, it may help yousolve the problem quickly.

If there is no solution, for technical issue, click here toreport an issue according to the issuetemplate, for business and security issue send email topyarmor@163.com

Generally all the other issues sent by email will be ignored.

There are 3 kinds of issues:

  1. The limitation of obfuscated scripts, or called known issues.
  2. PyArmor defect.
  3. Wrong usage.

For the first catalog, it can’t be fixed. For example, useinspect to visitco_code of code object, usepdb to trace obfuscated scripts. All of thesedon’t work, they’re known issues. Here list all the known issuesThe Differences of Obfuscated Scripts.

For the second catalog, it’s my due to fix it.

For the rests, it’s your due to read the documentation and fix it. I’ll give youhints and maybe examples, but I will not hand by hand tell you which comand andoptions should be used to obfuscate your scripts.

Suppose you purchase Microsoft Excel, and want to make a complex chart. You mustlearn the advanced features of Excel, then make this chart by yourself. You cannot ask Microsoft to make the complex chart for you.

Similarly pyarmor provides a lot of features and well document, but you needlearn them by yourself. For example, the restrict mode is advanced feature ofPyArmor, my due is to implement it as described in the document, you need learnthis advanced feature and refine you code to adapt it. It’s not my due to readyour scripts and adapt your scripts to restrict mode.

If you plan to obfuscate or use any third-party package, I also can’t obfuscatethis package for you and make sure it’s compatible with pyarmor. Here is a listabout all ofThe Differences of Obfuscated Scripts. If the package usesthese features changed by obfuscated scripts, it will not work with pyarmor.

There are countless big packages in Python world, many packages I never use andeven don’t know at all. It’s also not easy for me to research a complex packageto find which line conflicts with pyarmor, and it’s difficult for me to run allof these complex packages in my local machine.

Generally in this case users provide the simple snapshot code around exception,or some running information, I analysis them to find where it may conflict withpyarmor and try to find the solution.

Q & A

  1. Single PyArmor license purchased can be used on various machines forobfuscation? or its valid only on one machine? Do we need to install licenseon single machine and distribute obfuscate code?

    It can be used on various machines, but one license only for one product.
  2. Single license can be used to obfuscate Python code that will run variousplatforms like windows, various Linux flavors?

    For all the features of current version, it’s yes. But in future versions,
    I’m not sure one license could be used in all of platforms supported by
    PyArmor.
  3. How long the purchased license is valid for? is it life long?

    It’s valid for ever. But I can’t promise it will work for all the future
    versions of PyArmor, it may need to purchase new license if using a future
    version.
  4. Can we use the single license to obfuscate various versions of Pythonpackage/modules?

    Yes, only if they’re belong to one product.
  5. Is there support provided in case of issues encountered?

    Report issue in github, refer to technical support section above.
  6. Does Pyarmor works on various Python versions?

    Most of features work on Python27, and Python30~Python310, a few features
    may only work for Python27, Python37 later.
  7. Are there plans to maintain PyArmor to support future released Pythonversions?

    Yes. The goal of PyArmor is let Python could be widely used in the
    commercial softwares.
  8. What is the mechanism in PyArmor to identify whether modules belong to sameproduct? how it identifies product?

    PyArmor could not identify it by itself, but I can check the obfuscated
    scripts to find which registerred user distributes them. So I can find two
    products are distributed by one same license.
  9. If product undergoes revision ie. version changes, can same license be usedor need new license?

    Same license is OK.
  10. What means a product serials under PyArmor EULA?

A product serial means a sale unit and its upgraded versions. For
example, pyarmor for personal, pyarmor for enterprise, pyarmor from
version 1.0 to 7.0, and pyarmor-webui, the grahpics user interface of
pyarmor, all of them belong to one product serial.