Ignore access flags and calculate them ourselves (required for static scrambling to work)
Remove unused code (e.g. there are some leftover branches/variables - I think from a mixture of opaque predicates and the dummy transformer) I think this is unused code from Jagex's codebase (with unused fields removed by their obfuscator?). There's a small amount of it, so I'm not going to bother removing it automatically.
Automatically rename string constants I'm not going to bother with this, as some of the names would end up being quite long, there might be duplicates and it doesn't actually save much manual effort
Add @Override annotations
Improve FinalTransformer? Could/should we try to make more methods/fields final?
Remaining items:
* [x] Track original local variable names
* [x] Static scrambling transformer
* [x] Ignore access flags and calculate them ourselves (required for static scrambling to work)
* [x] ~~Remove unused code (e.g. there are some leftover branches/variables - I think from a mixture of opaque predicates and the dummy transformer)~~ I think this is unused code from Jagex's codebase (with unused fields removed by their obfuscator?). There's a small amount of it, so I'm not going to bother removing it automatically.
* ~~Automatically rename string constants~~ I'm not going to bother with this, as some of the names would end up being quite long, there might be duplicates and it doesn't actually save much manual effort
* [x] Add `@Override` annotations
* [x] Improve FinalTransformer? Could/should we try to make more methods/fields final?
gpe
changed title from Implement bytecode-based deobfuscator to Add bytecode-based deobfuscator5 years ago
Remaining items:
Remove unused code (e.g. there are some leftover branches/variables - I think from a mixture of opaque predicates and the dummy transformer)I think this is unused code from Jagex's codebase (with unused fields removed by their obfuscator?). There's a small amount of it, so I'm not going to bother removing it automatically.Automatically rename string constantsI'm not going to bother with this, as some of the names would end up being quite long, there might be duplicates and it doesn't actually save much manual effort@Override
annotationsImplement bytecode-based deobfuscatorto Add bytecode-based deobfuscator 5 years agoThe original goals in this issue are complete, so I'll close it in favour of the separate issues with the
deobfuscator
label.