Graham
8b57525c88
Move InsnList-related methods to InsnListUtils
5 years ago
Graham
db785e38d0
Convert MethodNodeUtils to Kotlin
5 years ago
Graham
862c79e31c
Rename deleteArgument() to removeArgument() for consistency
5 years ago
Graham
e68fed7a9e
Convert StackMetadata to Kotlin
5 years ago
Graham
eec9279a2c
Add hasCode() method
5 years ago
Graham
0cb0658f61
Add shorthand MemberDesc constructors
5 years ago
Graham
0a5901cde4
Add shorthand MemberRef constructors
5 years ago
Graham
6c3d98702c
Remove reset methods
5 years ago
Graham
446a72abc5
Make package-private classes, methods and fields public
...
This will make refactoring the client code into packages easier.
5 years ago
Graham
f6f810de2e
Remove mutually-recursive dummy method calls
...
This is a little bit grim and probably not completely safe in all cases,
but it works well enough on the client.
Ideally I think I'd do it with a dominator tree calculated from a call
graph aware of integer constants and conditional calls, but that's quite
complicated (especially given how the existing code in the
DummyArgTransformer works).
5 years ago
Graham
a7c1ae3597
Remove recursive dummy arguments
5 years ago
Graham
6520c15795
Remove redundant final modifiers
5 years ago
Graham
d34b1e7e72
Combine analyze and getFrames
5 years ago
Graham
28369f1d75
Add UnusedArgTransformer
5 years ago
Graham
d20e3997b4
Split transformMethod into {pre,post}TransformMethod
5 years ago
Graham
145ed6b1ee
Add classPath and library arguments to all Transformer methods
5 years ago
Graham
b7347b2632
Move ArgRef to the top level
...
I'm going to use it in another Transformer.
5 years ago
Graham
f426f16d72
Simplify DummyLocalTransformer
...
The obfuscated client only contains dummy locals of type int.
5 years ago
Graham
557f2fb504
Move remapping into a RemapTransformer
...
This allows us to run the remapping immediately between
OriginalNameTransformer and DummyArgTransformer.
5 years ago
Graham
1319295d77
Separate remapping from the write{Pack,Jar} methods
...
This is a prerequisite for removing dummy arguments - before the methods
are remapped, removing an argument might cause the method to conflict
with another method with the same name and descriptor as the replacement
descriptor.
5 years ago
Graham
318f906ab5
Make DummyLocalTransformer type-sensitive
...
This catches a few more dummy locals than the previous code.
5 years ago
Graham
7b3ec975d9
Inline constants in DummyArgTransformer
...
This is a prerequisite for us to be able to remove the constant
arguments.
5 years ago
Graham
4cfb9d9f69
Remove dummy branch expressions instead of inserting POPs
...
This prevents Fernflower from inserting dummy boolean variables.
5 years ago
Graham
3242356c80
Remove unused throws declarations
5 years ago
Graham
ccea2f0f8e
Rename DummyTransformer to DummyArgTransformer
5 years ago
Graham
7747fe457a
Remove dummy local variables
5 years ago
Graham
517032959e
Use immutable collections types from Guava
5 years ago
Graham
271d2126c0
Use InsnList's iterator instead of getFirst()/getNext()
5 years ago
Graham
24ce226e5c
Replace int with var for consistency
5 years ago
Graham
8613763520
Inline bitwise AND/OR/XOR methods
5 years ago
Graham
95c4741229
Remove all-null parameter arrays from the constArgs map
5 years ago
Graham
1cec2c3739
Remove ILOAD inlining
...
This causes Fernflower to output invalid Java in some cases. Need to
think about how exactly to replace it.
5 years ago
Graham
766b544fc1
Track multiple values in IntInterpreter
...
This helps us catch a few more cases in DummyTransformer.
5 years ago
Graham
3c1ec9f210
Add initial DummyTransformer
5 years ago
Graham
9b9bdeae63
Add multi-pass Transformer support
5 years ago
Graham
12293bb3b1
Refactor package structure of the asm module
5 years ago
Graham
0c8d0f9cc3
Add initial support for whole program analysis in transformers
5 years ago
Graham
cf650af5fa
Add OriginalArg annotation
...
The dummy argument removal code is going to fiddle with the argument
lists (and so could manual refactoring).
5 years ago
Graham
2cde631fca
Add BitShiftTransformer
5 years ago
Graham
82d359ad4d
Add FieldOrderTransformer
5 years ago
Graham
48f8c68500
Format code
5 years ago
Graham
6fde1a4bca
Add Original{Class,Name} annotations even if the name was unchanged
...
I think they will still be useful, as we might refactor the names in the
deobfuscated code in the future.
5 years ago
Graham
3b35a39084
Make ClassForNameTransformer compatible with SimpleRemapper
...
SimpleRemapper returns null if a class should not be renamed.
5 years ago
Graham
a056217cc2
Add CounterTransformer
5 years ago
Graham
ded582dd06
Remove FocusListener from class that claims to implement it but doesn't
5 years ago
Graham
a2f74669de
Add owner and descriptor to original field/method annotations
...
This will make it easier to map original names to refactored names. It
also means we can keep tracking static methods even if they get moved
around.
5 years ago
Graham
66283c6f7a
Add ExceptionTracingTransformer
5 years ago
Graham
4e929bbfc0
Rename annotations package to annotation
...
The rest of our package names are singular.
5 years ago
Graham
2367ba7ae4
Preserve original class and member names with @OriginalName
5 years ago
Graham
c1358f6105
Add renamer to the deobfuscator
5 years ago