Skip to content

Latest commit

 

History

History
99 lines (67 loc) · 3.17 KB

README.md

File metadata and controls

99 lines (67 loc) · 3.17 KB

Gruntpocalypse

CodeFactor

Gruntpocalypse is a jvm bytecode obfuscator written in kotlin with 30+ features.

This project aims for stability and versatility. Some ideas are from other obfuscators.

Join our Discord server and provide your suggestions: https://discord.gg/ysB2fMfeYW

Compatibility

100% passed JVM Obfuscation Test

If you encounter any compatibility issues, please raise an issue on GitHub to help us improve Grunt.

By the way, I appended the stability level on each feature. If you encountered unstable situation. You can turn off the low stability-level features.

Stability level: [1]=Unstable [5]=Stable

Notice

Controlflow requires ComputeMaxs disabled. Please ensure your included classes with full dependencies.

The dependencies of your project is highly required to ensure stability and intensity. If most of the project dependencies are unavailable for some reasons. I suggest you to enable useComputeMaxs in Global setting to ensure stability as much as possible. (If you encountered VerifyError, You should first try to complete the dependencies. It is recommended to only enable computeMaxs and disable controlflow obfuscation when most dependencies cannot be completed)

Features

Renamer

  • [5]ClassRename

  • [5]FieldRename

  • [5]MethodRename

  • [5]LocalVarRename

    The method renamer support InterfaceOverlap, InvokeDynamic, and FunctionalInterface check.

    InterfaceOverlap: A class extends/implements more than 2 class/interfaces with same method name and descriptor. ( Example: A implements B and C, B and C both are independent interface and have method invoke(I)J.)

Minecraft

  • [4]MixinClassRename
  • [4]MixinFieldRename

Encrypt

  • [4]ArithmeticEncrypt
  • [5]ConstPoolEncrypt
  • [5]NumberEncrypt
  • [5]StringEncrypt

Redirect

  • [4]MethodScramble
  • [5]FieldScramble
  • [5]StringEqualsRedirect
  • [5]InvokeDynamic

Optimization

  • [5]SourceDebugRemove
  • [5]EnumOptimization
  • [5]DeadCodeRemove
  • [5]KotlinOptimize
  • [4]Shrinking

Miscellaneous

  • [5]Crasher
  • [5]Watermark
  • [5]NativeCandidate
  • [5]ShuffleMembers
  • [5]TrashClass
  • [5]ClonedClass
  • [5]SyntheticBridge
  • [5]HWIDAuthentication
  • [5]PostProcess

ControlFlow

  • [4]BogusConditionJump (If, Goto) Generate fake jumps with random junk codes
  • [4]MangledCompareJump (If, Goto) Generate random conditional jump with junk codes for direct jump
  • [4]ReversedIfJump (If, Goto) Random mutation to the jump condition
  • [4]TableSwitchJump (Switch) Generate TableSwitch to replace direct jumps
  • [4]UnconditionalLoop (Switch) Random weird loops between switch labels
  • [4]TrappedSwitchCase (Switch) Random trapped switch junk cases
  • [4]JunkCodeGenerator (JunkCode) Generate junk calls
  • [0] (Provide ur suggestion in Discord)

License: GNU General Public License 3.0

This is a free and open source software under GPLv3

The previous Grunt versions under MIT license (1.5.8 and before)