Main features of FlatCode JOB


1 Obfuscation of java byte code by control-flow flattening

Reminder: in terms of source code, control flow flattening
is the obfuscation technique that "... splits all the
source code's basic blocks - such as function body,
loops, and conditional branches - and puts them all
inside a single infinite loop with a switch statement that
controls the program flow. This makes the program flow significantly harder to follow
because the natural conditional constructs that made the code easier to read has now gone." Reference 1.

2 Encryption of information that is feed to the switch
statement in order to control the method's flow

3. Run time decryption of flow dispatching information
using a DLL file appended to the program


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


5 Combination with some additional obfuscation techniques

6 Possibility to select the methods to be obfuscated

6 Encryption of String constants

8 Creation of Jar Archives

9 User-friendly graphical interface

10 More ... see Guide

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 ~11.0 MB

Other features of FlatCode JOB
  • Optional renaming of methods, fields, and packages (future releases)
  • Renaming without java code flattening (future releases)

Limitations of version 1.3

  • No obfuscation of short methods
  • No obfuscation of methods with try-catch statements (exception and synchronization handling)