/skidfuscator-java-obfuscator

Public proof-of-concept obfuscator using the MapleIR framework designed by cts & bibl

Primary LanguageJavaMIT LicenseMIT


Server Version Api Type Authors Issues Forks Stars

What is Skidfuscator?

Skidfuscator is a proof of concept obfuscation tool designed to take advantage of SSA form to optimize and obfuscate Java bytecode code flow. This is done via intra-procedural passes each designed to mingle the code in a shape where neither the time complexity neither the space complexity suffers from a great loss. To achieve the such, we have modeled a couple of well known tricks to add a significant strength to the obfuscation whilst at the same time retaining a stable enough execution time.

This project is not completed. This is a proof of concept I've been working on for a while. As far as I could tell, there are some serious flaws with parameter injection.

Features

Here are all the cool features I've been adding to Skidfuscator. It's a fun project hence don't expect too much from it. It's purpose is not to be commercial but to inspire some more clever approaches to code flow obfuscation, especially ones which make use of SSA and CFGs

Cool gif

Third Generation Flow

What is third generation flow obfuscation? Well, contrary to Zelix's second generation flow obfuscation, we use an even more complex system with private and public seeds. Here's how it works:



Exampel

Graph representing the two different approaches towards flow obfuscation between Zelix (17.0) and Skidfuscator (0.0.1)


We currently are working on a variety of ways to approach this system using various lightweight obfuscation methods. Here are the current ones to date:

  • Fake Exception GEN3 Obfuscation
  • Block Mangling GEN3 Obfuscation
  • Fake Jump GEN3 Obfuscation
  • Switch Mangling GEN3 Obfuscation
  • Loop Mangling GEN3 Obfuscation
  • Arithmetic Obfuscation GEN3 Obfuscation
  • Exception Mangling GEN3 Obfuscation
  • Condition Mangling GEN3 Obfuscation
  • String GEN3 Encryption

Features

NEW Number Mutation

Graph

Switch Mutation

Graph

Fake exceptions

Graph

Fake jumps

Graph

Credits

Alt

Libraries used

Inspired from