forked from openrs2/openrs2
Signed-off-by: Graham <gpe@openrs2.org>bzip2
parent
70b35216c9
commit
e18d751125
@ -0,0 +1,15 @@ |
||||
<component name="ProjectRunConfigurationManager"> |
||||
<configuration default="false" name="Deobfuscator" type="JetRunConfigurationType"> |
||||
<module name="openrs2.deob.main" /> |
||||
<option name="VM_PARAMETERS" value="-Xmx3G" /> |
||||
<option name="PROGRAM_PARAMETERS" value="" /> |
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> |
||||
<option name="ALTERNATIVE_JRE_PATH" /> |
||||
<option name="PASS_PARENT_ENVS" value="true" /> |
||||
<option name="MAIN_CLASS_NAME" value="org.openrs2.deob.DeobfuscateCommandKt" /> |
||||
<option name="WORKING_DIRECTORY" value="" /> |
||||
<method v="2"> |
||||
<option name="Make" enabled="true" /> |
||||
</method> |
||||
</configuration> |
||||
</component> |
@ -0,0 +1,34 @@ |
||||
plugins { |
||||
`maven-publish` |
||||
application |
||||
kotlin("jvm") |
||||
} |
||||
|
||||
application { |
||||
mainClass.set("org.openrs2.deob.DeobfuscateCommandKt") |
||||
applicationDefaultJvmArgs = listOf("-Xmx3G") |
||||
} |
||||
|
||||
dependencies { |
||||
api("com.github.ajalt.clikt:clikt:${Versions.clikt}") |
||||
|
||||
implementation(project(":decompiler")) |
||||
implementation(project(":deob-ast")) |
||||
implementation(project(":deob-bytecode")) |
||||
} |
||||
|
||||
publishing { |
||||
publications.create<MavenPublication>("maven") { |
||||
from(components["java"]) |
||||
|
||||
pom { |
||||
packaging = "jar" |
||||
name.set("OpenRS2 Deobfuscator") |
||||
description.set( |
||||
""" |
||||
A tool for deobfuscating and decompiling the RuneScape client. |
||||
""".trimIndent() |
||||
) |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
package org.openrs2.deob |
||||
|
||||
import com.github.ajalt.clikt.core.CliktCommand |
||||
import com.google.inject.Guice |
||||
|
||||
public fun main(args: Array<String>): Unit = DeobfuscateCommand().main(args) |
||||
|
||||
public class DeobfuscateCommand : CliktCommand(name = "deob") { |
||||
override fun run() { |
||||
val injector = Guice.createInjector(DeobfuscatorModule) |
||||
val deobfuscator = injector.getInstance(Deobfuscator::class.java) |
||||
deobfuscator.run() |
||||
} |
||||
} |
@ -0,0 +1,35 @@ |
||||
package org.openrs2.deob |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.openrs2.decompiler.Decompiler |
||||
import org.openrs2.deob.ast.AstDeobfuscator |
||||
import org.openrs2.deob.bytecode.BytecodeDeobfuscator |
||||
import org.openrs2.deob.util.Module |
||||
import java.nio.file.Paths |
||||
import javax.inject.Inject |
||||
import javax.inject.Singleton |
||||
|
||||
@Singleton |
||||
public class Deobfuscator @Inject constructor( |
||||
private val bytecodeDeobfuscator: BytecodeDeobfuscator, |
||||
private val decompiler: Decompiler, |
||||
private val astDeobfuscator: AstDeobfuscator |
||||
) { |
||||
public fun run() { |
||||
logger.info { "Deobfuscating bytecode" } |
||||
bytecodeDeobfuscator.run( |
||||
input = Paths.get("nonfree/lib"), |
||||
output = Paths.get("nonfree/var/cache/deob") |
||||
) |
||||
|
||||
logger.info { "Decompiling" } |
||||
decompiler.run(Module.ALL) |
||||
|
||||
logger.info { "Deobfuscating AST" } |
||||
astDeobfuscator.run(Module.ALL) |
||||
} |
||||
|
||||
private companion object { |
||||
private val logger = InlineLogger() |
||||
} |
||||
} |
@ -0,0 +1,12 @@ |
||||
package org.openrs2.deob |
||||
|
||||
import com.google.inject.AbstractModule |
||||
import org.openrs2.deob.ast.AstDeobfuscatorModule |
||||
import org.openrs2.deob.bytecode.BytecodeDeobfuscatorModule |
||||
|
||||
public object DeobfuscatorModule : AbstractModule() { |
||||
override fun configure() { |
||||
install(AstDeobfuscatorModule) |
||||
install(BytecodeDeobfuscatorModule) |
||||
} |
||||
} |
Loading…
Reference in new issue