Skip to content

Commit

Permalink
fix: improvements to MapleIR ssa optimisation
Browse files Browse the repository at this point in the history
  • Loading branch information
terminalsin committed Dec 24, 2024
1 parent af3594d commit ca8de13
Show file tree
Hide file tree
Showing 34 changed files with 1,095 additions and 605 deletions.
28 changes: 25 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import org.gradle.api.JavaVersion
import org.gradle.api.tasks.compile.JavaCompile

plugins {
id 'java'
id 'java-library'
Expand All @@ -16,11 +19,10 @@ allprojects {
}
}

apply plugin: 'java'
apply plugin: 'java-library'

sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

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

tasks.withType(JavaCompile).configureEach {
if (sourceCompatibility == JavaVersion.VERSION_17) {
options.compilerArgs += [
'--add-exports', 'java.base/jdk.internal.reflect=ALL-UNNAMED',
'--add-exports', 'java.base/jdk.internal.util=ALL-UNNAMED',
'--add-exports', 'java.base/sun.io.ch=ALL-UNNAMED'
]
}
}
tasks.withType(Test).configureEach {
if (sourceCompatibility == JavaVersion.VERSION_17) {
jvmArgs += [
'--add-exports', 'java.base/jdk.internal.reflect=ALL-UNNAMED',
'--add-exports', 'java.base/jdk.internal.util=ALL-UNNAMED',
'--add-exports', 'java.base/sun.io.ch=ALL-UNNAMED'
]
}
}


ext {
asm = 'org.ow2.asm:asm:9.7.1'
asm_commons = 'org.ow2.asm:asm-commons:9.7.1'
Expand Down
8 changes: 0 additions & 8 deletions dev.skidfuscator.obfuscator/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,6 @@ dependencies {
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
}

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

jar {
into('resources') {
Expand All @@ -68,8 +62,6 @@ processTestResources {
test {
useJUnitPlatform()
}
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

configurations {
downgrade
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,14 @@
import dev.skidfuscator.obfuscator.transform.impl.flow.exception.BasicExceptionTransformer;
import dev.skidfuscator.obfuscator.transform.impl.flow.interprocedural.InterproceduralTransformer;
import dev.skidfuscator.obfuscator.transform.impl.flow.interprocedural.RandomInitTransformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsIgnoreCaseHashTranformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.InstanceOfHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsIgnoreCaseHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.misc.AhegaoTransformer;
import dev.skidfuscator.obfuscator.transform.impl.number.NumberTransformer;
import dev.skidfuscator.obfuscator.transform.impl.pure.PureHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.sdk.SdkInjectorTransformer;
import dev.skidfuscator.obfuscator.transform.impl.string.StringEncryptionType;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsHashTranformer;
import dev.skidfuscator.obfuscator.transform.impl.string.StringTransformerV2;
import dev.skidfuscator.obfuscator.util.ConsoleColors;
import dev.skidfuscator.obfuscator.util.MapleJarUtil;
Expand Down Expand Up @@ -705,8 +706,9 @@ public List<Transformer> getTransformers() {
new BasicRangeTransformer(this),
new PureHashTransformer(this),
new SdkInjectorTransformer(this),
new StringEqualsHashTranformer(this),
new StringEqualsIgnoreCaseHashTranformer(this),
new StringEqualsHashTransformer(this),
new StringEqualsIgnoreCaseHashTransformer(this),
new InstanceOfHashTransformer(this),
/*
new FlatteningFlowTransformer(this),*/
new AhegaoTransformer(this)
Expand All @@ -723,7 +725,7 @@ public List<Transformer> getTransformers() {
transformers.clear();

for (Transformer temp : temps) {
if (temp.getConfig().isEnabled()) {
if (temp.isEnabled()) {
transformers.add(temp);
//System.out.println(temp.getName() + " -> " + Arrays.toString(temp.getConfig().getExemptions().toArray()));
for (String exemption : temp.getConfig().getExemptions()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import dev.skidfuscator.obfuscator.event.annotation.Listen;
import dev.skidfuscator.obfuscator.event.impl.Event;
import dev.skidfuscator.obfuscator.transform.AbstractTransformer;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
Expand All @@ -21,7 +22,17 @@ public class EventBus {
* @param instance Instance of the listener to be registered
*/
public static void register(final Listener instance) {
for (Method declaredMethod : instance.getClass().getDeclaredMethods()) {
final Set<Method> methods = new HashSet<>();

// get parent until abstract transformer is reached
Class<?> clazz = instance.getClass();

while (!clazz.equals(Listener.class) && !clazz.equals(Object.class)) {
methods.addAll(Arrays.asList(clazz.getDeclaredMethods()));
clazz = clazz.getSuperclass();
}

for (Method declaredMethod : methods) {
if (!declaredMethod.isAnnotationPresent(Listen.class))
continue;

Expand Down
Loading

0 comments on commit ca8de13

Please sign in to comment.