

Native LanguagesĪlthough the term “compiled language” is more commonly used in this context, we are deliberately using a different term so as to exclude intermediate languages. This makes obfuscation a very important tool to use when the source code contains sensitive information and logic. Since tools are available to revert (or “de-compile”) intermediate language code back to its former state (as written by a human), sending someone a program written in these languages involves the same risks as sending the source code. NET languages (C#, VB.NET, etc.) and Java.

Some examples of languages that are compiled to intermediate languages include. When the program is run, an interpreter reads the intermediate language code and carries out the instructions. Intermediate languages are a specific type of interpreted language, where the code written by a human is “compiled” into intermediate language code. Consequently, using a tool that obfuscates the source code is extremely important if the source code contains sensitive information and logic. In other words, sending someone a program written in these languages is the same as sending the source code. With these languages, the code (as written by a human) is read by an interpreter, which carries out the instructions written in code.

These are languages that are interpreted directly, such as Perl, PHP, PowerShell, VBScript, and others. We can summarize this in 3 high-level categories: interpreted languages, intermediate languages, and native languages. Obfuscation always has relevance in protecting intellectual property, but its importance and how it is applied varies depending on what language or framework was used when creating your application. In the context of software, obfuscation is the act of concealing (or “obscuring”) source code or machine code, so that it is difficult for humans to understand. However, there are some reasonable measures that should be taken to mitigate the risks of your intellectual property being reversed and/or stolen, and obfuscation is one tool that plays a critical role in doing so. No software or system is completely impervious to attack, and this is the unfortunate truth, which we laid out bare in a previous blog post highlighting 5 Blatant Truths About Software Licensing Systems and Piracy.

In this article, we provide a high-level summary on this rather technical topic. Obfuscation is one important tool used to guard against these risks. Did you know that in some cases, the intellectual property driving your application can be recovered back in source code form within minutes? You might be surprised how easily your software could be cracked and downloaded for free – or even worse, sold by some other party.
