Graham
70ccdfa526
Add removeDeadCode method
5 years ago
Graham
8ecbe7bb82
Remove unused openrs2.root property
5 years ago
Graham
3926f7735e
Add FCONST and DCONST groups to InsnMatcher
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
4788f8314e
Clear ClassPath cache after remapping
5 years ago
Graham
6e750b008f
Replace hard-coded 2 with GZIP_HEADER.length
5 years ago
Graham
23a85fd820
Add method for deleting MethodNode arguments
5 years ago
Graham
46f908bdb0
Replace ClassForNameTransformer
...
This commit stops ClassForNameTransformer from extending Transformer and
renames it. I think this makes sense, as we don't use it like a normal
Transformer.
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
1216812c8a
Add InsnNodeUtils.toString() method
...
Useful for debugging.
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
7747fe457a
Remove dummy local variables
5 years ago
Graham
f1c6f074a1
Add virtual instruction support to hasSideEffects() and StackMetadata
5 years ago
Graham
8c1f2c7b2f
Add hasSideEffects() function to InsnNodeUtils
5 years ago
Graham
176b109688
Add StackMetadata
...
I'm not yet sure if I'm going to need to use this, but I want to get it
in the repository so I have a copy of it for the future (this is already
the second time I've written something similar to it!)
5 years ago
Graham
003b7ecfef
Improve <description> wrapping
5 years ago
Graham
405c33c1a1
Format *.xml files with IDEA's code style
5 years ago
Graham
e647588f67
Switch to Apache Harmony's pack200 implementation
...
The built-in pack200 implementation is deprecated.
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
271d2126c0
Use InsnList's iterator instead of getFirst()/getNext()
5 years ago
Graham
fc95d5086c
Add {pre,post}Pass methods to Transformer
5 years ago
Graham
6ca8da1cd4
Mark the transform method as final
5 years ago
Graham
9b9bdeae63
Add multi-pass Transformer support
5 years ago
Graham
d293176959
Replace maven.multiModuleProjectDirectory with openrs2.root
...
openrs2.root works correctly even if the root of the reactor is a child
project, at the expense of having to re-define the property in each
module.
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
406feb72f0
Move classpath package to the asm module
...
This is in preparation for Transformers taking an entire ClassPath
instead of a single Library at a time, which is in turn required for
dummy argument removal (a whole program analysis).
5 years ago
Graham
3978ee9ea0
Allow Transformers to throw AnalyzerException
5 years ago
Graham
751ae183c1
Add IntInterpreter and IntValue
...
I'm planning to use these to remove dummies.
5 years ago
Graham
2cde631fca
Add BitShiftTransformer
5 years ago
Graham
48f8c68500
Format code
5 years ago
Graham
2367ba7ae4
Preserve original class and member names with @OriginalName
5 years ago
Graham
2e39ca26fd
Improve naming and typing in Member{Desc,Ref}.equals() methods
5 years ago
Graham
c1358f6105
Add renamer to the deobfuscator
5 years ago
Graham
7e4dee02d0
Rename FieldRef to MemberRef
5 years ago
Graham
c0568f1373
Make empty Library constructor public
5 years ago
Graham
0007da4729
Add OpaquePredicateTransformer and initial deobfuscator infrastructure
5 years ago
Graham
d001488424
Add logging to Library read/write methods
5 years ago
Graham
f0cb9d40e2
Add constructor for cloning a Library
5 years ago
Graham
3366156d92
Simplify writeJar
5 years ago
Graham
8966d7b531
Add abstract Transformer class
5 years ago
Graham
ca79e234bd
Add methods for manipulating and iterating over the classes in a library
5 years ago
Graham
77fc441a07
Add InsnMatcher
...
InsnMatcher converts an InsnList to a string of private use codepoints,
where each codepoint maps to an opcode. This allows regular expressions
to be written (using the native Java regular expression engine) to
extract subsequences of instructions whose opcodes match a regex.
5 years ago
Graham
c6921fba9d
Add InsnNodeUtils
...
This commit introduces four methods: two for finding the next/previous
AbstractInsnNode that contains a real JVM opcode and two for finding the
next/previous AbstractInsnNode that is virtual (e.g. a label).
5 years ago
Graham
d9d6ab27c1
Add Library class for reading and writing .jar and .pack files
5 years ago
Graham
8a7a7f25ba
Add deobfuscator project structure
5 years ago