MAIN FEATURES  of  FLATCODE JOB



1 Obfuscation of java byte code by control-flow flattening


2 Encryption of information that is fed to the switch
    statement

3. Run time decryption of flow dispatching information 
    


4 Post obfuscation modification of class byte codes with
    subsequent run time restoration

5 Additional obfuscation using other techniques

6 Possibility to select the methods to be obfuscated

7 Debugging of the obfuscated application by means of
   a simple in-house profiling agent

7 Encryption of String constants

8 Creation of Jar Archives

9 Renaming of classes, methods, and variables


10 Adaptation of property files to renamed classes


11 Renaming with and without code flattening

12 User-friendly graphical interface



Note: The FlatCode Java Obfuscator is an example of a program obfuscated by this technique.


REQUIREMENTS

  • Any PC that can run Java Development Kit
  • Java Development Kit version 1.8 (32-bit)
  • Disk space required ~60.0 MB

Limitations of version 5.0

  • No obfuscation of small methods (usually up to 3 nodes in the method's control flow graph). In fact, the obfuscation of such methods by control flow flattening is  not so effective. On the other hand, small methods, as a rule, do not contain much intellectual property that should be protected .


INTRODUCTION AND OBFUSCATION PRACTICE