Open-source multiplayer game server compatible with the RuneScape client https://www.openrs2.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/deob/src/main/java/dev/openrs2/deob/Deobfuscator.java

57 lines
1.6 KiB

package dev.openrs2.deob;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import dev.openrs2.asm.Library;
import dev.openrs2.asm.Transformer;
import dev.openrs2.deob.transform.OpaquePredicateTransformer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class Deobfuscator {
private static final Logger logger = LoggerFactory.getLogger(Deobfuscator.class);
private static final List<Transformer> TRANSFORMERS = List.of(
new OpaquePredicateTransformer()
);
public static void main(String[] args) throws IOException {
var deobfuscator = new Deobfuscator(Paths.get("nonfree/code"));
deobfuscator.run();
}
private final Path input;
public Deobfuscator(Path input) {
this.input = input;
}
public void run() throws IOException {
var unpacker = Library.readJar(input.resolve("game_unpacker.dat"));
var loader = Library.readJar(input.resolve("loader.jar"));
var glLoader = Library.readJar(input.resolve("loader_gl.jar"));
var client = Library.readJar(input.resolve("runescape.jar"));
var glClient = Library.readPack(input.resolve("runescape_gl.pack200"));
var libraries = Map.of(
"unpacker", unpacker,
"loader", loader,
"loader_gl", glLoader,
"runescape", client,
"runescape_gl", glClient
);
for (var entry : libraries.entrySet()) {
logger.info("Transforming library {}", entry.getKey());
for (var transformer : TRANSFORMERS) {
logger.info("Running transformer {}", transformer.getClass().getSimpleName());
transformer.transform(entry.getValue());
}
}
}
}