-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve StringEncryptTransformer #27
base: main
Are you sure you want to change the base?
Conversation
In order to keep the changes only to the string encryption, I've copied the old encryption function and method generator to I have tested this with my Minecraft plugin, and it worked fine. More extensive testing is recommended. |
@SpartanB312 I need some help with replacing invoke dynamic bsm arguments (strings) with a local variable representation (or something else). This way, we can obfuscate invoke dynamic bsms as well as ldcs. |
Bsm args are actually const pool index, which can't be replaced by localvar or field. |
You can refer to GOTO obfuscator's string encrypt transformer. It has a method for handling invoice dynamics |
or replace makeConcatWithConstants with StringBuilder (This is what the compiler did before Java8) |
I've implemented parts of their system into Grunt's code and it seems to be working. I'm still going to do some more testing. |
@SpartanB312 Let me know if this is production ready. I've tested it several times and it works fine. I'm going to recode the number obfuscation later and make it use a pool too. |
@SpartanB312 Can you make sure this also works in your environment? I'd like to merge this PR. |
Let me test more samples later |
TODO:
<clinit>
)