From 919386f3d31c69a077ecdcd84eb27cbd42a5a3b7 Mon Sep 17 00:00:00 2001 From: Thibaut Gautier Date: Wed, 17 Apr 2024 04:48:14 -0400 Subject: [PATCH] feat(obf): working v2 string obfuscation --- .../skidfuscator/obfuscator/Skidfuscator.java | 1 + .../impl/string/StringTransformerV2.java | 18 ++++++++++++++++-- .../obfuscator/util/DependencyUtil.java | 10 ++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/util/DependencyUtil.java diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java index 4c63063..5d549dc 100644 --- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java +++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java @@ -691,6 +691,7 @@ private void _verify() { + "/!\\ Skidfuscator failed to compute some libraries!\n" + "It it advised to read https://github.com/terminalsin/skidfuscator-java-obfuscator/wiki/Libraries\n" + "\n" + + "The following class was NOT found. This can be a dependency of a dependency." + "Error: " + e.getMessage() + "\n" + (e.getCause() == null ? "\n" diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/string/StringTransformerV2.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/string/StringTransformerV2.java index 5449307..fa283d4 100644 --- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/string/StringTransformerV2.java +++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/string/StringTransformerV2.java @@ -13,6 +13,7 @@ import dev.skidfuscator.obfuscator.transform.impl.string.generator.EncryptionGeneratorV3; import dev.skidfuscator.obfuscator.transform.impl.string.generator.v3.ByteBufferClinitV3EncryptionGenerator; import dev.skidfuscator.obfuscator.transform.impl.string.generator.v3.BytesClinitV3EncryptionGenerator; +import dev.skidfuscator.obfuscator.transform.impl.string.generator.v3.BytesV3EncryptionGenerator; import dev.skidfuscator.obfuscator.util.RandomUtil; import org.mapleir.asm.ClassNode; import org.mapleir.ir.cfg.ControlFlowGraph; @@ -62,15 +63,28 @@ void handle(final RunMethodTransformEvent event) { EncryptionGeneratorV3 generator = keyMap.get(parentNode); if (generator == null) { - switch (RandomUtil.nextInt(1)) { - default: { + switch (RandomUtil.nextInt(3)) { + case 0: { final int size = RandomUtil.nextInt(127) + 1; final byte[] keys = new byte[size]; for (int i = 0; i < size; i++) { keys[i] = (byte) (RandomUtil.nextInt(127) + 1); } + keyMap.put(parentNode, (generator = new BytesV3EncryptionGenerator(keys))); + break; + } + case 1: { + final int size = RandomUtil.nextInt(127) + 1; + final byte[] keys = new byte[size]; + for (int i = 0; i < size; i++) { + keys[i] = (byte) (RandomUtil.nextInt(127) + 1); + } + keyMap.put(parentNode, (generator = new BytesClinitV3EncryptionGenerator(keys))); + break; + } + default: { keyMap.put(parentNode, (generator = new ByteBufferClinitV3EncryptionGenerator())); break; } diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/util/DependencyUtil.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/util/DependencyUtil.java new file mode 100644 index 0000000..859d648 --- /dev/null +++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/util/DependencyUtil.java @@ -0,0 +1,10 @@ +package dev.skidfuscator.obfuscator.util; + +/** + * Creates and reads a small database of common dependencies. + * This is used to + */ +public class DependencyUtil { + //public +} +