Skip to content

Commit ca8de13

Browse files
committed
fix: improvements to MapleIR ssa optimisation
1 parent af3594d commit ca8de13

34 files changed

+1095
-605
lines changed

build.gradle

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import org.gradle.api.JavaVersion
2+
import org.gradle.api.tasks.compile.JavaCompile
3+
14
plugins {
25
id 'java'
36
id 'java-library'
@@ -16,11 +19,10 @@ allprojects {
1619
}
1720
}
1821

19-
apply plugin: 'java'
2022
apply plugin: 'java-library'
2123

22-
sourceCompatibility = 1.8
23-
targetCompatibility = 1.8
24+
sourceCompatibility = JavaVersion.VERSION_17
25+
targetCompatibility = JavaVersion.VERSION_17
2426

2527
dependencies {
2628
compileOnly 'org.projectlombok:lombok:1.18.36'
@@ -34,6 +36,26 @@ allprojects {
3436
options.encoding = "UTF-8" // Will fail on the non-ascii comments if not set
3537
}
3638

39+
tasks.withType(JavaCompile).configureEach {
40+
if (sourceCompatibility == JavaVersion.VERSION_17) {
41+
options.compilerArgs += [
42+
'--add-exports', 'java.base/jdk.internal.reflect=ALL-UNNAMED',
43+
'--add-exports', 'java.base/jdk.internal.util=ALL-UNNAMED',
44+
'--add-exports', 'java.base/sun.io.ch=ALL-UNNAMED'
45+
]
46+
}
47+
}
48+
tasks.withType(Test).configureEach {
49+
if (sourceCompatibility == JavaVersion.VERSION_17) {
50+
jvmArgs += [
51+
'--add-exports', 'java.base/jdk.internal.reflect=ALL-UNNAMED',
52+
'--add-exports', 'java.base/jdk.internal.util=ALL-UNNAMED',
53+
'--add-exports', 'java.base/sun.io.ch=ALL-UNNAMED'
54+
]
55+
}
56+
}
57+
58+
3759
ext {
3860
asm = 'org.ow2.asm:asm:9.7.1'
3961
asm_commons = 'org.ow2.asm:asm-commons:9.7.1'

dev.skidfuscator.obfuscator/build.gradle

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,6 @@ dependencies {
3939
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
4040
}
4141

42-
tasks.withType(JavaCompile) {
43-
options.compilerArgs += [
44-
'--add-exports', 'java.base/jdk.internal.reflect=ALL-UNNAMED',
45-
'--add-exports', 'java.base/jdk.internal.util=ALL-UNNAMED'
46-
]
47-
}
4842

4943
jar {
5044
into('resources') {
@@ -68,8 +62,6 @@ processTestResources {
6862
test {
6963
useJUnitPlatform()
7064
}
71-
sourceCompatibility = JavaVersion.VERSION_17
72-
targetCompatibility = JavaVersion.VERSION_17
7365

7466
configurations {
7567
downgrade

dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@
5353
import dev.skidfuscator.obfuscator.transform.impl.flow.exception.BasicExceptionTransformer;
5454
import dev.skidfuscator.obfuscator.transform.impl.flow.interprocedural.InterproceduralTransformer;
5555
import dev.skidfuscator.obfuscator.transform.impl.flow.interprocedural.RandomInitTransformer;
56-
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsIgnoreCaseHashTranformer;
56+
import dev.skidfuscator.obfuscator.transform.impl.hash.InstanceOfHashTransformer;
57+
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsHashTransformer;
58+
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsIgnoreCaseHashTransformer;
5759
import dev.skidfuscator.obfuscator.transform.impl.misc.AhegaoTransformer;
5860
import dev.skidfuscator.obfuscator.transform.impl.number.NumberTransformer;
5961
import dev.skidfuscator.obfuscator.transform.impl.pure.PureHashTransformer;
6062
import dev.skidfuscator.obfuscator.transform.impl.sdk.SdkInjectorTransformer;
6163
import dev.skidfuscator.obfuscator.transform.impl.string.StringEncryptionType;
62-
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsHashTranformer;
6364
import dev.skidfuscator.obfuscator.transform.impl.string.StringTransformerV2;
6465
import dev.skidfuscator.obfuscator.util.ConsoleColors;
6566
import dev.skidfuscator.obfuscator.util.MapleJarUtil;
@@ -705,8 +706,9 @@ public List<Transformer> getTransformers() {
705706
new BasicRangeTransformer(this),
706707
new PureHashTransformer(this),
707708
new SdkInjectorTransformer(this),
708-
new StringEqualsHashTranformer(this),
709-
new StringEqualsIgnoreCaseHashTranformer(this),
709+
new StringEqualsHashTransformer(this),
710+
new StringEqualsIgnoreCaseHashTransformer(this),
711+
new InstanceOfHashTransformer(this),
710712
/*
711713
new FlatteningFlowTransformer(this),*/
712714
new AhegaoTransformer(this)
@@ -723,7 +725,7 @@ public List<Transformer> getTransformers() {
723725
transformers.clear();
724726

725727
for (Transformer temp : temps) {
726-
if (temp.getConfig().isEnabled()) {
728+
if (temp.isEnabled()) {
727729
transformers.add(temp);
728730
//System.out.println(temp.getName() + " -> " + Arrays.toString(temp.getConfig().getExemptions().toArray()));
729731
for (String exemption : temp.getConfig().getExemptions()) {

dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/event/EventBus.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.skidfuscator.obfuscator.event.annotation.Listen;
44
import dev.skidfuscator.obfuscator.event.impl.Event;
5+
import dev.skidfuscator.obfuscator.transform.AbstractTransformer;
56

67
import java.lang.reflect.InvocationTargetException;
78
import java.lang.reflect.Method;
@@ -21,7 +22,17 @@ public class EventBus {
2122
* @param instance Instance of the listener to be registered
2223
*/
2324
public static void register(final Listener instance) {
24-
for (Method declaredMethod : instance.getClass().getDeclaredMethods()) {
25+
final Set<Method> methods = new HashSet<>();
26+
27+
// get parent until abstract transformer is reached
28+
Class<?> clazz = instance.getClass();
29+
30+
while (!clazz.equals(Listener.class) && !clazz.equals(Object.class)) {
31+
methods.addAll(Arrays.asList(clazz.getDeclaredMethods()));
32+
clazz = clazz.getSuperclass();
33+
}
34+
35+
for (Method declaredMethod : methods) {
2536
if (!declaredMethod.isAnnotationPresent(Listen.class))
2637
continue;
2738

0 commit comments

Comments
 (0)