PFCLObfuscate Features

PFCLObfuscate is designed as a command line tool to allow it to be easily integrated into any existing build processes or scripts or indeed to be added as a user tool / plugin to existing GUI Database Development tools. PFCLObfuscate comes with simple command line tools that allow a complete set of source code files to be processed in one step.

PFCLObfuscate is used to parse PL/SQL, SQL and SQL*Plus scripts and locate variables and function names and replace them with meaningless names that are very similar to each other to make it hard for an observer of the source code to understand the resulting obfuscated source code.

PFCLObfuscate features include the following:

  • comment removal – Enable the removal of comments from the PL/SQL or SQL*Plus scource code via a simple configuration switch
  • code compaction – Enable compacting to remove most white space from the source code. This is further enhanced by allowing the end user to choose the resulting line length of  code lines.
  • variable and identifier obfuscation  – Enable obfuscation to change readable identifiers to unreadable values scrambling the meaning of the source code. Variables are scrambled randomly and you can control the length, first character and character set used.
  • choose character set – Choose the character set used for the obfuscated variable names – i.e. OolLi01 would be a good set that when used generates variables that are hard to distinguish from each other. We also support setting
  • choose variable length
  • download all converted variables after obfuscation for reference
  • New: For support issues related to your own code easy feature to allow reversal of your obfuscations to help see the original code
  • command line for ease of integration with build tools/scripts
  • choose output line length
  • add keywords dynamically
  • choose variables to not obfuscate
  • works on multiple source files allowing correlation across all files
  • omit public interfaces by listing
  • configuration file
  • omit strings from obfuscation by listing
  • force obfuscation of variables if necessary
  • string obfuscation
  • able to obfuscate PL/SQL functions, procedures, packages, types
  • able to obfuscate SQL*Plus scripts
  • omit SQL hints
  • we have a user documentation manual and samples
  • debug and trace interface to help resolve configuration issues
  • simple wrap protect

How does it work: The tool is the equivalent to the front-end of a compiler. It reads SQL, SQL*Plus and PL/SQL files extracts source code tokens and obfuscates identifiers individually and also correlates the same variable names across your multiple files. If an API (Application Programming Interface) for instance is called TEST_PROC and it is obfuscated to a variable {random string for instance “oOiil0ll”} in the implementation and also the same {random string} variable is used in all files where the procedure is used allowing correlation between source codes.

The character space used – i.e. the letters used in the variables is specified in the configuration as is the length of the variables to be generated. The PFCLObfuscate tool also compacts source code and removes comments.

Version 2.0 coming soon will extend the features by allowing PFCLObfuscate to also automatically add your own code to create license type features such as limiting when your code can be run and by who and from where. You will also be able to add tamperproof features to your code automatically to prevent it being modified by an attacker to defeat license type features. Verson 2.0 provides a scriptable interface to PFCLObfuscate allowing PL/SQL code to easily be inserted at 6 different “hook” points within your PL/SQL. It will provide stronger string encryption and obfuscation of integers and also the ability to obfuscate standard and configurable package calls. We will ship various standard blocks of code and you will be free to add your own. More details of version 2.0 soon….