Web Analytics Made Easy - Statcounter

Rcode Obfuscation - Upload R scripts here - All types (.r/.R,.rmd/.RMD)

README

What is OnDemand obfuscation?

  1. It is a badly needed option that we should have provided much earlier than we did, apparently.
    • It is essentially a pay-as-you-go plan that allows you to avoid paying the month based prices
      • Instead of $49.95 per month, you get to choose from these 3 cheaper plans:
        1. 1-Day Access / 1.Script.Submission / 15.resubmissions / Expires in 24.hours
        2. 2-Day Access / 5.Script.Submission / 50.resubmissions / Expires in 48.hours
        3. 3-Day Access / 10.Script.Submission / 100.resubmissions / Expires in 72.hours
    • For more information, or to make a purchase, you may visit this link OnDemand Options.
      • Please note however, as of right now (April 3rd, 2024), OnDemand plans are currently only available for 4 languages...
        1. Rcode/RMD
        2. Shell/Bash
        3. PowerShell
        4. Python
      • We'll add more languages based on...well, demand :)

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

  1. Ensure all uploaded R scripts are properly named:
    • All R scripts submitted must have a .r/.R or .rmd/.RMD extension:
      • my_script.R
    • Avoid spaces in the names of your scripts:
      • my script.rmd
  2. Once a R 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 R script.
        • OR, you can just click on the "PACKAGED" link to get all freshly obfuscated R scripts in one zip file.

For subscribers:

In the space provided for User List, specify the comma seperated list of usernames you wish to grant access to your encrypted scripts. Note, the username(s) provided during encryption will be only usernames able to run the encrypted 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 encrypted scripts. Note, the hostname(s) provided during encryption will be only hosts on which the encrypted 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 encrypted script

This setting forces your protected R 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 R script on a host without internet connectivity, the script will abort.

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 encrypted
      • Note, this is only needed if Admin Imports and Allowed Importers have values. Do not enter anything here if you're not encrypting 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

Rcode Obfuscator - Obfuscate R Scripts (.r/.R/.rmd/.RMD)

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

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

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

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

We are very confident our R obfuscation tool can thoroughly obfuscate any R script given to it and we welcome you to test and confirm for yourself. If your obfuscated R 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.

We utilize the libraries digest and base64enc. These will be the only packages you'll need to install, if you dont have them already.

Yes. You can obfuscate the same R scripts multiple times. It won't count against the total allowed.

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

Example:

  • example1.R can be re-submitted multiple times
  • example2.R can be re-submitted multiple times
  • example3.R can be re-submitted multiple times
  • example4.R can be re-submitted multiple times
  • example5.R can be re-submitted multiple times
  • ....
  • example19.R can be re-submitted multiple times
  • example20.R can be re-submitted multiple times

But example21.R cannot be submitted, because you’ve already submitted 20 different scripts before it.

It is highly unlikely for a valid R 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 R scripts first, using the free obfuscation portal available on this page.
    • Note, all R scripts uploaded through this free portal will expire within 24 to 48 hours.
      • However, the obfuscated R scripts that were produced by it will be fully functional for the duration of their valid period.
  2. If any of the R 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 R code that just works.
      • There's nothing complicated for you to figure out or configure. You just upload your R script and within seconds, you'll get back an obfuscated copy!
      • Every single obfuscated R 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 R 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 R scripts through the free web interface (this page), you're allowed to upload up to 3 R scripts at a time. If you submit more than 3, the obfuscation process will NOT proceed.

If you're submitting your R 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 R obfuscator to the directory which contains the R 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 R scripts, there is a '-mc-r-lv' option available to use to simulteneously obfuscate multiple scripts at once. This will utilize all available cores on your system.

Protect R Code - Secure variable content, Hide Source Code

All R 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 R 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 R 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 R 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 R scripts to combat this very real possibility. If during execution of a protected R 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 R 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 R 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 R code will fail to execute if any of the following conditions are true:
  1. The plain text version of the R 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 R obfuscator.
  2. The obfuscated R 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 R 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 R script from within a non-obfuscated plain text script
    • If you obfuscated your R 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 R script on a host without internet connectivity
    • Whenever a R script is obfuscated with the satelite feature enabled, that means the author wants 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 R 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 R scripts protected by us, very seriously.
    • And as such, we consider the disclosure of sensitive security details as an unnecessary risky move.
  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 R script which you intend to import from other R scripts, please note the following:

  1. For obvious security reasons, we have restricted the ability to import an obfuscated R code from within a non-obfuscated plain text R script.
  2. If you wish to import R scripts from within other R scripts, you'll need to ensure all associated R scripts are obfuscated.
    • If an attempt is made to import an obfuscated R script from within a plain text R script, the obfuscated R code will fail to execute.
Yes. Obfuscated R files produced by us have been confirmed to work with the Rscript command, RStudio, Visual Studio.

If you're running your R files in a way different from the aforementioned methods, that's ok. Just let us know. We can always release new updates to accommodate any application through which R files can be utilized.



R Script Obfuscator - Protect & Secure R script source code through Obfuscation - Obfuscate .r/.R, .rmd/.RMD scripts regardless of complexity or size!

# Uploaded Rcode scripts (3 R files at a time)



Register/Login to begin Uploading & Obfuscating R Code (.r/.R/.rmd/.RMD) scripts