Web Analytics Made Easy - Statcounter

Python Obfuscation - Upload Python scripts here - Any .py Script

README

For a seamless obfuscation of your Python scripts, please abide by the following rules:

  1. Ensure all uploaded Python scripts are properly named:
    • All Python scripts submitted must have the .py extension:
      • my_script.py
    • Avoid spaces in the names of your scripts:
      • my script.py
  2. Once a python script is dropped into the Upload area, it will be automatically obfuscated.
    • After obfuscation completes, you will be redirected to the download page.
      • The download page will have a separate "Zip Link" for the obfuscated version of each uploaded python script.
        • OR, you can just click on the "PACKAGED" link to get all freshly obfuscated python scripts in one zip file.

NOTE: All obfuscated python scripts generated through this free portal will expire within 24 to 48 hours.

For subscribers:

In the space provided for User List, specify the comma seperated list of usernames you wish to grant access to your obfuscated scripts. Note, the username(s) provided during obfuscation will be only usernames able to run the obfuscated script(s). The script will not function for any other user!

For subscribers:

In the space provided for Host List, specify the comma seperated list of hostnames(fqdns) you wish to grant access to your obfuscated scripts. Note, the hostname(s) provided during obfuscation will be only hosts on which the obfuscated script(s) can be run. The script(s) will not function on any other host!

For subscribers:

In the space provided, specify when you wish for your script to expire.

    Examples:

    • 7d = 7 Days
    • 2w = 2 Weeks
    • 4mo = 4 Months
    • 7000d = 19+ Years
    • July-18-2022_15:00 = Specific date

If no option is selected, the default option will be "off". Which means your script will not expire!

In the space provided for Function names, specify the comma seperated list of functions you wish to protect, if using RStudio/Rconsole.

Choose 'no' (recommended) to disable the ability to debug your obfuscated script

This setting forces your protected python script to validate itself with our servers before allowing users to run it.

  • NOTE: If an attempt is made to run a satelite enabled obfuscated python script on a host without internet connectivity, the script will abort.
    • NOTE: Enabling this setting means the obfuscated script may collect information about the system on which it is executed.
      • Collection of details is automatically enabled in the event an unususal activity is detected against the execution of the obfuscated python script.
    • Yes, this setting is automatically enabled for all python scripts obfuscated through the free/trial portal on this page.

To ensure your obfuscated scripts can only be imported from other obfuscated scripts, configure the following settings:

    Currently available only for Subscribers:

    • Unique Company Name = Set this to your companyname....(.i.e. apple.com, google.com, cnn.com)
    • Import Access Key = Set a password here to be assigned to all scripts being obfuscated
      • Note, this is only needed if Admin Imports and Allowed Importers have values. Do not enter anything here if you're not obfuscating imported modules
    • Admin Imports = Specify the names of the main/master scripts which will be importing other scripts
    • Allowed Importers = Specify here the names of other scripts which the main/master scripts will be importing

It is forbidden to run an obfuscated python script in interactive mode or through a debugger. This is considered intrusive.

  • When such an activity is detected, the obfuscated python script will fail to execute.
    • This is one of the self-defense features an obfuscated python script can be loaded with to better protect it against the many forces of the wild.

Python Obfuscator - Obfuscate Python Scripts (.py)

In the context of protecting source code, a python obfuscator is a tool designed to convert plain text python code into an unreadable text which still qualifies as a runnable, functioning python script.

In other words, a python obfuscator is generally used to accomplish one or more of the following goals:

  • Prevent modifications to commercial python scripts - Ensure no one, regardless of privilege, is allowed to make changes to an obfuscated code
  • Retain the ability to sell or share python scripts without the crippling fear of your intellectual property falling into the wrong hands
  • Gathering usage metrics on sensitive python code once it is shared with the external/outside world
  • Regulate how long commercial python scripts can be used - Define and enforce date locks or expiration dates
  • Moderate the list of users who are authorized to run protected python scripts
  • Regulate where (on which systems) specific obfuscated python scripts can be utilized
  • Safeguard highly confidential credentials stored within python scripts
The complexity of your Python script does not matter. At all.

Any Python script obfuscated by AtShai.com/EnScrypt.io should be expected to work exactly as the original. If your original plain text python script has bugs in it, then, yes, the obfuscated version will also have bugs. Therefore, we strongly recommend confirming the plain text python script you're uploading actually works.

We are very confident our Python obfuscation tool can thoroughly obfuscate any python script given to it and we welcome you to test and confirm for yourself. If your obfuscated python script is unable to execute for some odd reason, there's no need panic or feel dejected (we actually understand). Just notify us immediately so we can address it.

No. The obfuscated version of your python script will behave exactly as the original. No extra addons or special modules will be needed to execute it.

All functionalities available in the plain text version will also be available in the obfuscated version.
Yes. You can obfuscate the same python scripts multiple times. It won't count against the total allowed.

However, when the list of all python scripts submitted for obfuscation is uniqued, the total cannot be more than the number of scripts allowed for the plan you purchased.

Example:

  • example1.py can be re-submitted multiple times
  • example2.py can be re-submitted multiple times
  • example3.py can be re-submitted multiple times
  • example4.py can be re-submitted multiple times
  • example5.py can be re-submitted multiple times

But example6.py cannot be submitted, because you’ve already submitted 5 different scripts before it.

It is highly unlikely for a valid python script obfuscated by us to encounter issues with execution.

In the very rare event that happens, you have two options:

  1. Contact us immediately and provide as much information as possible
    • We will prioritize issues like this with the utmost urgency
  2. If we're unable to fix the problem to your satisfaction
    • We will gladly issue you a refund!

Before making a purchase, consider the following:

  1. Try uploading some of your python scripts first, using the free obfuscation portal available on this page.
    • Note, all python scripts uploaded through this free portal will expire within 24 to 48 hours.
      • However, the obfuscated python scripts that were produced by it will be fully functional for the duration of their valid period.
  2. If any of the python scripts you obfuscated does not work exactly as the original, let us know as soon as possible.
    • We are very, very proud to be the one and only robust and versatile obfuscation for Python code that just works.
      • There's nothing complicated for you to figure out or configure. You just upload your python script and within seconds, you'll get back an obfuscated copy!
      • Every single obfuscated python script protected by us will work, as the original. No special loaders or addons necessary to run them.

Yes. However, the size of an obfuscated Python script can be reduced through the security settings applied to it during obfuscation.

While we do keep a watchful eye over obfuscated script sizes, please note that in the grand scheme of things the script size shouldn't be of too much concern...so long as the obfuscation delivers on protecting your code and the obfuscated code isn't noticeably slow.

Nevertheless, we understand every customer is different. Therefore, if it is critical for you to have the sizes of your obfuscated scripts significantly reduced, just contact us. We'll create a customized solution for you.
Yes you can.

If you're submitting your python scripts through the free web interface (this page), you're allowed to upload up to 3 python scripts at a time. If you submit more than 3, the obfuscation process will NOT proceed.

If you're submitting your python scripts through the paid web interface (paying customers), you'll be granted permission to upload as many unique scripts as is allowed under the plan you purchased.

If you're a OnPrem license holder, you can simply point the python obfuscator to the directory which contains the python scripts you wish to obfuscate and the obfuscator will take over.
  • This option has a feature that allows you to obfuscate multiple scripts at the same time...depending on how powerful your server is.
    • For instance, if you have a directory with hundreds of python scripts, there is a '-mc-r-lv' option available to use to simultaneously obfuscate multiple scripts at once. This will utilize all available cores on your system.
For those using the paid service, the question here is "Will obfuscated python scripts remain functional after your access to upload scripts has expired?". The answer is Yes.

We do not control the expiration dates of python scripts obfuscated through the paid service. Obfuscated scripts produced under the paid plan will only expire if you configured an expiration date for them.

Protect Python Code - Secure variable content, Hide Source Code

All Python scripts uploaded through this free portal will have some strict security features enabled by default.

Default Security Features

  1. Duplication Prevention
    • This feature ensures the name you gave to your obfuscated script at the time of obfuscation is the same name it will be forever known by. If changed, script will abort.
  2. Expiration Date Control
    • This feature ensures all submitted Python scripts expire within 24 to 48 hours. The allowed time is verified remotely, with our servers. This means we will be notified of all unauthorized attempts to prolong the usage of the obfuscated python code.
  3. Self-Defend/Self-Destruction
    • This feature handles the process of terminating the execution of a protected script whenever it is under attack. We understand once an obfuscated Python script is sent out into the wild, anyone can try all sorts of hacks on it. As such, we built in some defensive capabilities in all obfuscated Python scripts to combat this very real possibility. If during execution of a protected Python script, we sense that it has been maliciously altered, we will cause the script to abort, and self destruct!
Yes. All paid customers are allowed to specify expiration dates (among other settings) and decide how their protected python script should behave in the event of an attempted hack attack.

It is generally believed that 'obfuscation' is not possible. And there are myriad of reasons for why those who believe this, think this way. One of such reasons is that, they believe no matter how heavily obfuscated a code is, someone smart enough or someone with enough time on their hands can always crack the obfuscation.

While this has a modicum of truth to it, the reality is, no matter how smart the "hacker" is, no matter how much time they have on their hands, there is only a finite number of tactics they can employ to try to hack an obfuscated script, especially one like ours, equipped with dynamic intelligence.

So long as it remains true that there is only a limited number of ways to hack a script, our obfuscation will always prevail. We can always develop counter measures to counteract whatever loopholes a persistent hacker is able to discover. That is what we do. That is precisely what we specialize in and we have spent years perfecting the many different methodologies used in our obfuscation process.

Experience has taught us that source code security is an absolute must. It is important you, as a company or developer remain informed on where your code is being used and how it is being used. Not only will this provide you with insights on how to make your software more useful to your users, it'll also reveal the identity of any nefarious entity seeking to gain unauthorized access to your intellectual property and the frequency of such misbehaviors.
If any one of your obfuscated python scripts isn't working exactly as the original version, don't panic. Just let us know. We'll help you get to the bottom of the issue.

An obfuscated python code will fail to execute if any of the following conditions are true:
  1. The plain text version of the python script (which you submitted) is buggy and does not work.
    • If this is the case, you'll need to fix that first before re-submitting to the python obfuscator.
  2. The obfuscated python script was altered in one way or other..i.e. adding/removing text from it, script name was changed, script was put through a debugger
    • If this is the case, you'll need to get the fresh copy of the obfuscated script from the zip file that it came in OR just undo the unauthorized changes.
  3. You're running the obfuscated python script on a host on which you configured it not to run on.
    • If this is the case, you'll get an error alerting you about the issue.
  4. You're attempting to import an obfuscated python script from within a non-obfuscated plain text script
    • If you obfuscated your python script with the 'secureimport' setting enabled, then tried to 'include' or 'require' it from an unprotected script, you will be confronted with an error message.
  5. You're attempting to execute a satelite enabled obfuscated python script on a host without internet connectivity
    • Whenever a python script is obfuscated with the satelite feature enabled, that means the author/developer wishes to retain tight control over the usage of the script
      • And if this is the case here, the obfuscated script will fail to function, and might even self-destruct if it cannot remotely validate itself.
Our Python Obfuscator has quite a number of security settings, some of which have already been listed on this page.

However, there are some other settings that will never be made public unless to an established customer.

  1. We take the security of all python scripts protected by us, very seriously.
    • And as such, we consider the disclosure of sensitive security details as an unnecessary risky endeavor.
  2. Nevertheless, it is worth noting that, some of these private settings were developed specifically for clients with unique customization requests.
    • Therefore, if you wish to have a particular setting customized to your liking or developed (if it doesnt already exist in our arsenal of features), let us know.
If you obfuscate a python script which you intend to import from other python scripts, please note the following:

  1. For obvious security reasons, we have restricted the ability to import an obfuscated python code from within a non-obfuscated plain text python script.
  2. If you wish to import python scripts from within other python scripts, you'll need to ensure all associated python scripts are obfuscated.
    • If an attempt is made to import an obfuscated python script from within a plain text python script, the obfuscated python code will fail to execute.
Yes, you could. For your convenience, we include automated .bat/.sh scripts for you to run to convert your obfuscated scripts into either a binary or an executable.

However, before deciding to add pyinstaller to the equation, it's important to revisit your reasons for code protection.

For instance, if your main objective is to ensure that your python code cannot be tampered with, and that it is well protected and can't be easily hacked into, then, you don't need PyInstaller. The protection provided by the AtShai obfuscator is more than sufficient to satisfy that objective.

However, if your ultimate goal is to obfuscate your python code, but also package all the modules used by the code into one binary or executable so that your users wont have to worry about getting, downloading, installing and configuring dependencies, then, yes, you could use PyInstaller for that.

Be aware though that, introducing pyinstaller into the mix means the execution time of the final script could be higher than the unprotected version of it.

Python Obfuscator - Protect Python scripts through Obfuscation - Obfuscate any Python script no matter how large or complex it is!

# Uploaded Python scripts (3 python files at a time)



Register/Login to begin Uploading & Obfuscating Python (.py) scripts