Pyarmor python что это

Pyarmor 8.3 Documentation¶

Pyarmor has a lot of documentation. A high-level overview of how it’s organized will help you know where to look for certain things:

  • Part 1: Tutorials takes you by the hand through a series of steps to obfuscate Python scripts and packages. Start here if you’re new to Pyarmor . Also look at the Getting Started
  • Part 2: How To guides are recipes. They guide you through the steps involved in addressing key problems and use-cases. They are more advanced than tutorials and assume some knowledge of how Python works.
  • Part 3: References guides contain key concepts, man page, configurations and other aspects of Pyarmor machinery.
  • Part 4: Topics guides insight into key topics and provide useful background information and explanation. They describe how it works and how to use it but assume that you have a basic understanding of key concepts.
  • Part 5: Licenses describes EULA of Pyarmor , the different Pyarmor licenses and how to purchase Pyarmor license.

Getting help¶

Try the FAQ – it’s got answers to many common questions.

Looking for specific information? Try the Index , or the detailed table of contents .

Читайте также:  What is java portlet

Table of Contents¶

  • 1. Tutorials
    • 1.1. Getting Started
      • 1.1.1. What’s Pyarmor
      • 1.1.2. Installation from PyPI
      • 1.1.3. Obfuscating one script
      • 1.1.4. Obfuscating one package
      • 1.1.5. Expiring obfuscated scripts
      • 1.1.6. Binding obfuscated scripts to device
      • 1.1.7. Packaging obfuscated scripts
      • 1.1.8. Something need to know
      • 1.1.9. What to read next
      • 1.1.10. How the documentation is organized
      • 1.2.1. Prerequisite
      • 1.2.2. Installation from PyPI
      • 1.2.3. Using virtual environments
      • 1.2.4. Installation from source
      • 1.2.5. Installation in offline device
      • 1.2.6. Run Pyarmor from Python script
      • 1.2.7. Clean uninstallation
      • 1.3.1. Debug mode and trace log
      • 1.3.2. More options to protect script
      • 1.3.3. More options to protect package
      • 1.3.4. Copying package data files
      • 1.3.5. Checking runtime key periodically
      • 1.3.6. Binding to many machines
      • 1.3.7. Using outer file to store runtime key
      • 1.3.8. Localization runtime error
      • 1.3.9. Packing obfuscated scripts
      • 1.4.1. Using rftmode pro
      • 1.4.2. Using bccmode pro
      • 1.4.3. Customization error handler
      • 1.4.4. Filter mix string
      • 1.4.5. Filter assert function and import
      • 1.4.6. Patching source by inline marker
      • 1.4.7. Internationalization runtime error message
      • 1.4.8. Generating cross platform scripts
      • 1.4.9. Obfuscating scripts for multiple Python versions
      • 1.5.1. Changing runtime package name
      • 1.5.2. Appending assert functions and modules
      • 1.5.3. Using plugin to fix loading issue in darwin
      • 1.5.4. Using hook to bind script to docker id
      • 1.5.5. Using hook to check network time by other service
      • 1.5.6. Protecting extension module pyarmor_runtime
      • 1.5.7. Comments within outer key
      • 2.1. Highest security and performance
        • 2.1.1. What’s the most security pyarmor could do?
        • 2.1.2. What’s the best performance pyarmor could do?
        • 2.1.3. Recommended options for different applications
        • 2.1.4. Reforming scripts to improve security
        • 2.8.1. Third party libraries
        • 2.9.1. Prerequisite
        • 2.9.2. Using Pyarmor Basic or Pro
        • 2.9.3. Using group license
        • 2.9.4. Upgrading old Pyarmor license
        • 3.1. Concepts
        • 3.2. Man Page
          • 3.2.1. pyarmor
          • 3.2.2. pyarmor gen
          • 3.2.3. pyarmor gen key
          • 3.2.4. pyarmor cfg
          • 3.2.5. pyarmor reg
          • 3.2.6. Environment Variables
          • 3.3.1. Supported Python versions
          • 3.3.2. Supported platforms
          • 3.3.3. Configuration options
          • 3.3.4. Plugins
          • 3.3.5. Hooks
          • 3.4.1. Supported Python versions and platforms
          • 3.4.2. Environment variables
          • 3.4.3. Supported Third-Party Interpreter
          • 3.4.4. Specialized builtin functions
          • 3.5.1. Building Errors
          • 3.5.2. Runtime Errors
          • 3.5.3. Outer Errors
          • 4.1. Insight Into Obfuscation
            • 4.1.1. Filter scripts by finder
            • 4.2.1. Restrict modes
            • 4.2.2. The differences of obfuscated scripts
            • 4.2.3. Supported Third-Party Interpreter
            • 4.3.1. Packing obfuscated scripts manually
            • 4.3.2. Segment fault in Apple M1
            • 4.4.1. Enable RFT Mode
            • 4.4.2. Check transformed script
            • 4.4.3. Trace rft log
            • 4.4.4. Exclude name rule
            • 4.4.5. Handle wild card form of import
            • 4.4.6. Handle module attribute __all__
            • 4.4.7. Manual ruler
            • 4.5.1. Enable BCC mode
            • 4.5.2. Trace bcc log
            • 4.5.3. Ignore module or function
            • 4.5.4. Changed features
            • 4.5.5. Unsupported features
            • 5.1. Introduction
            • 5.2. License types
              • 5.2.1. License features
              • 5.3.1. Refund policy
              • 5.4.1. Upgrading old license to Pyarmor Basic
              • 6.1. Asking questions in GitHub
              • 6.2. Segment fault in Apple
              • 6.3. Packing
              • 6.4. License
                • 6.4.1. Upgrading

                Indices and tables¶

                © Copyright 2018 — 2023 Dashingsoft Corp. Revision fe1db4a4 .

                Источник

                Saved searches

                Use saved searches to filter your results more quickly

                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

                License

                Unknown and 3 other licenses found

                Licenses found

                dashingsoft/pyarmor

                This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

                Name already in use

                A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

                Sign In Required

                Please sign in to use Codespaces.

                Launching GitHub Desktop

                If nothing happens, download GitHub Desktop and try again.

                Launching GitHub Desktop

                If nothing happens, download GitHub Desktop and try again.

                Launching Xcode

                If nothing happens, download Xcode and try again.

                Launching Visual Studio Code

                Your codespace will open once ready.

                There was a problem preparing your codespace, please try again.

                Latest commit

                change core version to 4.3.dev2

                Git stats

                Files

                Failed to load latest commit information.

                README.md

                Pyarmor is a command-line tool designed for obfuscating Python scripts, binding obfuscated scripts to specific machines, and setting expiration dates for obfuscated scripts.

                • Seamless Replacement: Obfuscated scripts remain as standard .py files, 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).
                • 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.

                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. ')

                For more information, check out the getting started tutorial.

                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.

                1. Consult the Pyarmor 8.0 Documentation.
                2. Check the FAQ for answers to common questions.
                3. Try the documentation index or the detailed table of contents.
                4. If you still can’t find the information you need, see asking questions on GitHub.
                5. Report bugs following the issue template.
                6. For business and security inquiries, send an email to pyarmor@163.com.

                Pyarmor 8.0 introduces significant changes. It has been rewritten and new features are implemented through the new commands: gen , reg , cfg . These commands only work for Python 3.7 and above.

                Users of versions prior to 8.0 should read the Import Notes section to decide whether to upgrade Pyarmor.

                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 8.x Release Plan

                Important Notes for Users of Pyarmor Prior to 8.0

                Going forward, only bug fixes will be provided for older commands, such as obfuscate and licenses . No new features will be added to these commands, but they will continue to be usable.

                Upon the release of Pyarmor 8.0, there are three scenarios for existing users:

                1. Never upgrade to version 8.0+

                • SPP mode will not work
                  • To use SPP mode, you must upgrade Pyarmor to version 8.0 or later.
                  • This command was used to query registration information in earlier versions of Pyarmor. However, the license server no longer supports this web API. Use pyarmor -v to ensure you are not using a trial version.
                  • To use Pyarmor on a new machine, CI server, or Docker, refer to the second method described in the registration file «pyarmor-regcode-xxxxxx.txt»:
                  Downloading "pyarmor-regfile-xxxxxx.zip" once, use this `.zip` file to register Pyarmor later. 

                  2. Upgrade to version 8.0 but only use old features

                  By default, the pyarmor command only accepts the new commands.

                  To continue using older commands like obfuscate and licenses , you can:

                  • Use pyarmor-7 instead of pyarmor
                  • Set the environment variable PYARMOR_CLI=7 and continue using pyarmor
                  • Call the entry point pyarmor.pyarmor:main_entry in any other way

                  3. Upgrade to version 8.0 and use new features

                  • New EULA:
                    • Adhere to the new Pyarmor EULA. This is a significant change for users with old personal licenses, as the new license only allows one product.
                    • Not all old licenses can be freely upgraded to the new license. Please refer to the Pyarmor licenses for more information.
                    • Older commands do not require an internet connection, but new commands do.
                    • While older commands support Python 2.7-3.10, new commands only support Python 3.7+.

                    Footnotes

                    1. Some features may be exclusive to Python 3. ↩
                    2. Some features may be exclusive to specific architectures. ↩

                    About

                    A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

                    Источник

                    Pyarmor

                    A command line tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

                    Seamless Replacement

                    The obfuscated script is a normal python script. With an extra extension module pytransform , the plain Python scripts can be replaced with obfuscated ones seamlessly

                    And Pyarmor works well with py2exe, py2app, PyInstaller, cx_Freeze etc.

                    Runtime Obfuscation

                    The byte code of each code object will be obfuscated as soon as code object completed execution, and f_locals of frame is cleared at the same time

                    Irreversible Obfuscation Modes

                    RFT Mode

                    Renames functions, methods, classes, variables, and arguments

                    BCC Mode

                    Converts some Python functions to C functions and compiles them into machine instructions using high optimization options for irreversible obfuscation

                    Pack Obfuscated Scripts

                    Pyarmor could pack obfuscated scripts into one bundle with PyInstaller

                    Different Licenses

                    Expire obfuscated scripts

                    Pyarmor can set expired date for obfuscated scripts. After that, obfuscated scripts can not be run

                    Bind to fixed machine

                    Pyarmor can bind obfuscated scripts to serial number of harddisk, mac address of network card, ip address etc..

                    Extend other license type

                    The obfuscated script is black box for end user, add any authentation code in your Python script

                    Источник

Оцените статью