Graham
db971f6b2b
Convert indefiniteArticle() to an extension 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
27c0b997b9
Share list of bundler transformers
5 years ago
Graham
135a2891d1
Reduce MAX_TRACKED_VALUES to 1
5 years ago
Graham
8eac1c1ce3
Skip merging logic in IntInterpreter if value1 and value2 are equal
...
This fixes a problem where dummy arguments that already had more than 8
possible values in their set (because the dummy argument is used in a
greater or less than condition) were not removed, as we'd replace the
IntValue with an unknown value when two branches (where the dummy
argument is not modified) are merged back together.
It should also improve performance, as we'll be doing less memory
allocation.
5 years ago
Graham
a7c1ae3597
Remove recursive dummy arguments
5 years ago
Graham
8ecbe7bb82
Remove unused openrs2.root property
5 years ago
Graham
6520c15795
Remove redundant final modifiers
5 years ago
Graham
49a4cb3084
Remove macOS-specific resize logic from the client
...
Our custom jaggl natives update the OpenGL context upon resizing, unlike the
original natives.
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
46ab5111e6
Add isMethodImmutable method to TypedRemapper
...
I'm going to use this in a new Transformer.
5 years ago
Graham
b7347b2632
Move ArgRef to the top level
...
I'm going to use it in another Transformer.
5 years ago
Graham
bb2f72c4f0
Add ConstSourceInterpreter
...
It is akin to SourceInterpreter, but more efficient as it only tracks
the sources of integer constants and it doesn't track sources through
copy instructions.
5 years ago
Graham
f426f16d72
Simplify DummyLocalTransformer
...
The obfuscated client only contains dummy locals of type int.
5 years ago
Graham
261cc87125
Add CachePathTransformer
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
b97294457a
Make ClassNamePrefixer more similar to TypedRemapper
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
c6d184c5c5
Convert OriginalNameTransformer to a standard Transformer
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
9f49902962
Use ImmutableList in the Deobfuscator class
5 years ago
Graham
003b7ecfef
Improve <description> wrapping
5 years ago
Graham
a1f7cf5ce4
Add HostCheckTransformer
5 years ago
Graham
405c33c1a1
Format *.xml files with IDEA's code style
5 years ago
Graham
5fd2488988
Fix right clicking on modern versions of Java
5 years ago
Graham
eec8990481
Add description to all modules
5 years ago
Graham
517032959e
Use immutable collections types from Guava
5 years ago
Graham
f90b959210
Rename 'Deobfuscator' to 'Bytecode Deobfuscator'
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
55646c8384
Add newParameterValue() implementation to IntInterpreter
5 years ago
Graham
a4c6c4774a
Add toString() to IntValue
5 years ago
Graham
9b9bdeae63
Add multi-pass Transformer support
5 years ago