Less than 1 minute
String Encryption
The string encryption transformer transforms every string into a specific method call, with the purpose of hiding it in runtime. This can be practical for non-sensitive URLs, private keys, etc...
Note
You should not trust the client as a basis. Please do not rely on String encryption as the sole protection for your software. By default, you should assume that a talented enough reverse-engineer could gain access to these with enough time and patience.
Config
There are currently two modes for String encryption: STANDARD
and POLYMORPHIC
stringEncryption {
enabled: true
type: POLYMORPHIC
exempt: []
}
Examples
Unobfuscated
System.out.println("Hello world");
Standard
System.out.println(superDuperMethod("\u2be6\uabec\uebfe\uebfe\uabe0\uabf7\ue7f1", n ^ 0x9F878R));
Polymorphic
StringBuilder string = new StringBuilder("\u2be6\uabec\uebfe\uebfe\uabe0\uabf7\ue7f1\uabe0\u6bfa\uebfe\uabee\uabf5");
for (int a=0, b, c; a < string.length(); a++) {
b = string.charAt(a);
b = (((b & 0xffff) << 0x6) | (b >> 0xa)) & 0xffff;
c = ((b >> 0x0) ^ (b >> 0x7)) & ((1 << 0x4) - 1);
b ^= (c << 0x0) | (c << 0x7);
b ^= 0x600f ^ n;
b -= 0x2aa2 ^ n;
b += 0x25b0 ^ n;
b ^= 0x9852 ^ n;
string.setCharAt(a, (char) b);
}
System.out.println(string)