Download

You can download the Obfuscat.xlsb here, fully functional, with a temporal demo license code. It troubles with your firewall, download Obfuscat.zip here to elude restrictions. Obfuscat is basically an Excel executable macro without installation libraries. If still on troubles, contact info@obfuscat.org Obfuscat is a product of easyESEF Ltd.

What Obfuscat is?

Non-intrusive obfuscation.

It is a program that makes the VBA source code continue to work exactly the same in clear than obfuscated. But read obfuscated code is very difficult: nobody can’t understand now how the code runs. This makes reverse re-engineering very difficult.

Self-contained obfuscation

The source code statements are kept on exactly the same lines and in exactly the same order after obfuscation. In case of debugging or errors, you can go to the source code in clear and see in which statement the problem has been raised.

There is no need for external files or to hide the source code somewhere in exotic places. The obfuscated code is a perfectly normal VBA module, but it is difficult to realise how it works. You can also mix obfuscated and clear modules in the same program. Both interoperate perfectly.

Obfuscat needs some empty lines at the beginning of the source code to create its own VBA Const definitions. If there are no enough empty lines, the source codes lines will be simply displaced to make rom. Some lines will be added after the source code for the VBA Function required on obfuscation. Constants are stored in a set of encrypted strings here.

Performance in clear vs. obfuscated

Performance is primarily affected when replacing each constant for an obfuscation Call that returns its value at runtime. Obfuscation Call is therefore optimised for minimising performance impact; however, CPU performance is still an order of magnitude slower.

Tested against Artificial Intelligence-based static deobfuscation attacks

The obfuscated code has been shown to withstand attacks carried out using artificial intelligence. Static analysis is not feasible, either with AI or with standard tools. The only way forward is through analysis of the code whilst it is running, which is very costly and lies beyond the capabilities of artificial intelligence (at least for the time being). Human expertise is very expensive, which acts as a deterrent to carrying out immediate attacks.

Run Obfuscat generating obfuscated VBA code

Obfuscat is an Excel program type .xlsb running in a Windows PC, with one single click. The source code never goes out your PC. Absolutely confidential and safe. No cloud computing risks.

The input is the Import VBA file.vb in clear with the source code program (file type .vb to obfuscate). If no VBA file path is provided, Obfuscat will prompt for selecting one.

The button ‘OBFUSCAT: Click to number and obfuscate the source code lines from the VBA file (extension .vb)‘ will run the process.

The output are two files, in the same folder and with the same name than the VBA file in clear (xxxxxxxx.vb), but ending as:

  • xxxxxxxx.obfuscated.vb with the obfuscated code. Substitute the source code by the obfuscated code and run again. That´s all.
  • xxxxxxxx.obfuscated.txt with the translation table from clear names to obfuscated names. All obfuscated variables and constants are detailed with number of obfuscated occurrences, number of times declared, line of declaration, original name and obfuscated mask.

All the messages and errors that have been produced in the obfuscation process are shown in the sheet Dashboard.

For initial use, simply download

Running for the first time: download and run!

If Windows asks for security permission to run Excel macros (as “all the macros may be disabled” or “blocked macros from running”), please follow these instructions:

  • Take note of these instructions and close this Excel file.
  • Open “Windows File Explorer” and select this Excel file.
  • Press down on the right-hand button of the mouse and click on “Properties”. Click on “Unblock” on the bottom at right. Click “Apply”.
  • That is all! Open again this Excel file

Parameteres: Use Factory defaults. Check the tabs Obfuscation and
Numbering for additional details

Examples of use

Download and unzip the ObfuscatExample.zip folder to obtain a complete test environment. The ObfuscatExample.xlsb programme imports the VBA file HelloWorld.vb and exports nine files, creating three different executable modules from the root example HelloWorld.xlsb

The HelloWorld.vb file contains the VBA code from HelloWorld.xlsb, and the other files are generated by ObfuscatExample.xlsb

Run HelloWorld.xlsb to familiarise yourself with it. Next, open the VBA Editor for HelloWorld.xlsb, copy the obfuscated file HelloWorld.num.obfuscated.vb and run it again: the behaviour is the same, but this time the code is obfuscated. Explore different combinations by repeating the process and copying the following files into the VBA editor: HelloWorldConstant.num.vb, HelloWorldConstant.num.obfuscated.vb, HelloWorldVariable.num.vb and HelloWorldVariable.num.obfuscated.vb.
Enjoy!

License

The Obfuscat programme is licensed to individual userIDs: the name of the Windows account of the user who is logged in. The licensor (easyESEF Ltd. in this case) provides a licence code (see that sheet Dashboard), for a set of userIDs, valid until a specified expiry date.

The Obfuscat programme can be downloaded with a demo licence code, valid for wjatever userID until a specified expiry date.

The License Function is an VBA code embeed in the Obfuscat programme, managing the License code provided by the end user. Each License code includes codified as alphanumeric string a set of programmes authorished for a set of identified users until a specified expiry date. Each calling programme invoking the License Funcion (as Obfuscat.xlsb) identifies itself with a Keyword. The calling programme also provides the user identification, as Windows userID, or LEI code, or Regulatory number, any other alfanumeric token.

An independent VBA programme, the License Manageer, creates the different License codes, based each one in a list of keywords of programmes, a list of users, and a expiry date.

Interested? The License management is also a product available on easyESEF Ltd.

The Obfuscat programme is licensed by individual user IDs: the Windows account name of the user who is logged in. The licensor (easyESEF Ltd.) provides a licence code (see the ‘Dashboard’ tab) for a set of user IDs, valid until a specified expiry date.

The Obfuscat programme is downloaded with a demo licence code, valid for any user ID until a specified expiry date.

To make it easier to update the licence code without having to modify the Excel programme, you can save the easyESEF.License.txt file in the standard Windows folder C:\Users\Public with the list of licence codes for easyESEF products. This text file contains one or more licence codes and/or paths to other files which, in turn, contain licence codes and/or paths. Example of inside easyESEF.License.txt:

q0ayA3tGlQOpV57A

Interested? Licence management is a product developed by easyESEF Ltd. and available for third parties

The licensing code is a VBA Function integrated into the Obfuscat programme, that manages the licence code provided by the end user.

Each licence code includes, encoded as an alphanumeric string, a set of programmes authorised for a set of identified users until a specified expiry date. Each programme that calls the licensing Function (such as Obfuscat.xlsb) is identified by a keyword. The programme making the call also provides the user’s identification, whether this be the Windows user ID, the LEI code, a Regulatory number or any other alphanumeric identifier.

A standalone VBA programme, the ‘Licence Manager’, creates the various licence codes, each based on a list of programme keywords, a list of users and an expiry date.