ItzSomebody / radon

[Abandoned] Scuffed java bytecode obfuscator
GNU General Public License v3.0
362 stars 74 forks source link

How to generate names using English alphabet? #102

Closed Lorenzo0111 closed 2 years ago

Lorenzo0111 commented 2 years ago

Is there a way to rename class fields and methods with normal characters and not things like the one in the image?

image

ItzSomebody commented 2 years ago

I have no idea what you meant by "normal characters", so I'll assume you are asking how you can generate names via letters from the English alphabet as a character set.

You can achieve that by listing the entirety of the English alphabet in both uppercase and lowercase as the dictionary key in the config. i.e.

dictionary: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Lorenzo0111 commented 2 years ago

Already did, but it is still using those characters

ItzSomebody commented 2 years ago

Other than possible encoding issues of your config file, I am not sure I can even come up with any explanation as to why that is happening (default dictionary is set to the "alphanumeric" one if I remember correctly so it should literally be impossible that that is the case here).

Can you upload your config file?

Lorenzo0111 commented 2 years ago

https://pastebin.com/QqW4Pj92

ItzSomebody commented 2 years ago

Oh, you're using invokedynamics. I missed that from your screenshot. Due to the way that transformer works, the decompiled result is forced to look like that -- no way of getting around it.

If you're curious, https://github.com/ItzSomebody/radon/blob/master/src/main/java/me/itzsomebody/radon/transformers/obfuscators/references/FastInvokedynamicTransformer.java#L89 is how it works under the hood.

Lorenzo0111 commented 2 years ago

Ok, thanks