java-deobfuscator / deobfuscator

The real deal
https://javadeobfuscator.com
Apache License 2.0
1.55k stars 289 forks source link

Can u add method's argument normalizer? #901

Closed minus1ms closed 2 years ago

minus1ms commented 2 years ago

Method's argument normalizer will be helpful if u can add it

minus1ms commented 2 years ago

or just argument normalizer

minus1ms commented 2 years ago

because class's constructor also have arguments

Janmm14 commented 2 years ago

You mean LocalVariableNameRemover? https://github.com/java-deobfuscator/deobfuscator/blob/master/src/main/java/com/javadeobfuscator/deobfuscator/transformers/general/removers/LocalVariableRemover.java

minus1ms commented 2 years ago

no, i don't want to delete local variables

minus1ms commented 2 years ago

wait i will give example

minus1ms commented 2 years ago

//class constructor public A(int 0, double 1, float 5t) {} //this is made by an obfuscator public A(int arg1, double arg2, float agr3) {} //this is how arguments normalizer should work

minus1ms commented 2 years ago

and of course it should rename references to args too

minus1ms commented 2 years ago

you know, u have class, method, field normalizer but there is no args normalizer

minus1ms commented 2 years ago

also cfr is renaming that automatically but if u want to try with procyon u will see what is wrong

Janmm14 commented 2 years ago

no, i don't want to delete local variables

it does not delete local variables despite its name. what it does is removing the name associations of local variable positions. this will make every decompiler (without an option of ignoring the local variable name table) to invent variable names.

local variables are referenced by number, not by name. (and every method argument is essentially a local variable)

minus1ms commented 2 years ago

hmm ok, so should I just use LocalVariableNameRemover??

Janmm14 commented 2 years ago

yes (although its called different)