forked from openrs2/openrs2
This is in preparation for adding a new deob module which invokes the bytecode deobfuscator, decompiler and AST deobfuscator in turn. Signed-off-by: Graham <gpe@openrs2.org>
parent
ded1d99924
commit
3cb7ee13f9
@ -1,12 +1,12 @@ |
||||
<component name="ProjectRunConfigurationManager"> |
||||
<configuration default="false" name="Deobfuscator" type="JetRunConfigurationType"> |
||||
<module name="openrs2.deob.main" /> |
||||
<configuration default="false" name="BytecodeDeobfuscator" type="JetRunConfigurationType"> |
||||
<module name="openrs2.deob-bytecode.main" /> |
||||
<option name="VM_PARAMETERS" value="" /> |
||||
<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="MAIN_CLASS_NAME" value="org.openrs2.deob.bytecode.DeobfuscateBytecodeCommandKt" /> |
||||
<option name="WORKING_DIRECTORY" value="" /> |
||||
<method v="2"> |
||||
<option name="Make" enabled="true" /> |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import org.openrs2.asm.MemberRef |
||||
import org.openrs2.util.collect.DisjointSet |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import org.openrs2.asm.MemberRef |
||||
|
@ -1,43 +1,43 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import com.google.inject.AbstractModule |
||||
import com.google.inject.Scopes |
||||
import com.google.inject.multibindings.Multibinder |
||||
import org.openrs2.asm.transform.Transformer |
||||
import org.openrs2.deob.transform.BitShiftTransformer |
||||
import org.openrs2.deob.transform.BitwiseOpTransformer |
||||
import org.openrs2.deob.transform.CanvasTransformer |
||||
import org.openrs2.deob.transform.ClassLiteralTransformer |
||||
import org.openrs2.deob.transform.ConstantArgTransformer |
||||
import org.openrs2.deob.transform.CopyPropagationTransformer |
||||
import org.openrs2.deob.transform.CounterTransformer |
||||
import org.openrs2.deob.transform.EmptyClassTransformer |
||||
import org.openrs2.deob.transform.ExceptionTracingTransformer |
||||
import org.openrs2.deob.transform.FernflowerExceptionTransformer |
||||
import org.openrs2.deob.transform.FieldOrderTransformer |
||||
import org.openrs2.deob.transform.FinalFieldTransformer |
||||
import org.openrs2.deob.transform.FinalTransformer |
||||
import org.openrs2.deob.transform.InvokeSpecialTransformer |
||||
import org.openrs2.deob.transform.MethodOrderTransformer |
||||
import org.openrs2.deob.transform.MonitorTransformer |
||||
import org.openrs2.deob.transform.OpaquePredicateTransformer |
||||
import org.openrs2.deob.transform.OriginalNameTransformer |
||||
import org.openrs2.deob.transform.OriginalPcRestoreTransformer |
||||
import org.openrs2.deob.transform.OriginalPcSaveTransformer |
||||
import org.openrs2.deob.transform.OverrideTransformer |
||||
import org.openrs2.deob.transform.PatcherTransformer |
||||
import org.openrs2.deob.transform.RedundantGotoTransformer |
||||
import org.openrs2.deob.transform.RemapTransformer |
||||
import org.openrs2.deob.transform.ResetTransformer |
||||
import org.openrs2.deob.transform.UnusedArgTransformer |
||||
import org.openrs2.deob.transform.UnusedLocalTransformer |
||||
import org.openrs2.deob.transform.UnusedMethodTransformer |
||||
import org.openrs2.deob.transform.VisibilityTransformer |
||||
import org.openrs2.deob.bytecode.transform.BitShiftTransformer |
||||
import org.openrs2.deob.bytecode.transform.BitwiseOpTransformer |
||||
import org.openrs2.deob.bytecode.transform.CanvasTransformer |
||||
import org.openrs2.deob.bytecode.transform.ClassLiteralTransformer |
||||
import org.openrs2.deob.bytecode.transform.ConstantArgTransformer |
||||
import org.openrs2.deob.bytecode.transform.CopyPropagationTransformer |
||||
import org.openrs2.deob.bytecode.transform.CounterTransformer |
||||
import org.openrs2.deob.bytecode.transform.EmptyClassTransformer |
||||
import org.openrs2.deob.bytecode.transform.ExceptionTracingTransformer |
||||
import org.openrs2.deob.bytecode.transform.FernflowerExceptionTransformer |
||||
import org.openrs2.deob.bytecode.transform.FieldOrderTransformer |
||||
import org.openrs2.deob.bytecode.transform.FinalFieldTransformer |
||||
import org.openrs2.deob.bytecode.transform.FinalTransformer |
||||
import org.openrs2.deob.bytecode.transform.InvokeSpecialTransformer |
||||
import org.openrs2.deob.bytecode.transform.MethodOrderTransformer |
||||
import org.openrs2.deob.bytecode.transform.MonitorTransformer |
||||
import org.openrs2.deob.bytecode.transform.OpaquePredicateTransformer |
||||
import org.openrs2.deob.bytecode.transform.OriginalNameTransformer |
||||
import org.openrs2.deob.bytecode.transform.OriginalPcRestoreTransformer |
||||
import org.openrs2.deob.bytecode.transform.OriginalPcSaveTransformer |
||||
import org.openrs2.deob.bytecode.transform.OverrideTransformer |
||||
import org.openrs2.deob.bytecode.transform.PatcherTransformer |
||||
import org.openrs2.deob.bytecode.transform.RedundantGotoTransformer |
||||
import org.openrs2.deob.bytecode.transform.RemapTransformer |
||||
import org.openrs2.deob.bytecode.transform.ResetTransformer |
||||
import org.openrs2.deob.bytecode.transform.UnusedArgTransformer |
||||
import org.openrs2.deob.bytecode.transform.UnusedLocalTransformer |
||||
import org.openrs2.deob.bytecode.transform.UnusedMethodTransformer |
||||
import org.openrs2.deob.bytecode.transform.VisibilityTransformer |
||||
import org.openrs2.deob.util.DeobfuscatorUtilModule |
||||
import org.openrs2.patcher.PatcherModule |
||||
import org.openrs2.patcher.transform.ResourceTransformer |
||||
|
||||
public object DeobfuscatorModule : AbstractModule() { |
||||
public object BytecodeDeobfuscatorModule : AbstractModule() { |
||||
override fun configure() { |
||||
install(PatcherModule) |
||||
install(DeobfuscatorUtilModule) |
@ -0,0 +1,18 @@ |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import com.github.ajalt.clikt.core.CliktCommand |
||||
import com.google.inject.Guice |
||||
import java.nio.file.Paths |
||||
|
||||
public fun main(args: Array<String>): Unit = DeobfuscateBytecodeCommand().main(args) |
||||
|
||||
public class DeobfuscateBytecodeCommand : CliktCommand(name = "deob-bytecode") { |
||||
override fun run() { |
||||
val injector = Guice.createInjector(BytecodeDeobfuscatorModule) |
||||
val deobfuscator = injector.getInstance(BytecodeDeobfuscator::class.java) |
||||
deobfuscator.run( |
||||
input = Paths.get("nonfree/share/client"), |
||||
output = Paths.get("nonfree/var/cache/deob") |
||||
) |
||||
} |
||||
} |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import javax.inject.Qualifier |
||||
|
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import org.objectweb.asm.Attribute |
||||
import org.objectweb.asm.ByteVector |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import org.openrs2.asm.filter.GlobClassFilter |
||||
import org.openrs2.asm.filter.GlobMemberFilter |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper |
||||
import org.openrs2.yaml.Yaml |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob |
||||
package org.openrs2.deob.bytecode |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Type |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.Type |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.tree.AbstractInsnNode |
||||
import org.objectweb.asm.tree.analysis.BasicValue |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.jgrapht.Graph |
||||
import org.jgrapht.graph.AsUnmodifiableGraph |
@ -1,3 +1,3 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
public data class CopyAssignment(val destination: Int, val source: Int) |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.AbstractInsnNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.jgrapht.Graph |
||||
import org.jgrapht.graph.DefaultEdge |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.AbstractInsnNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
public enum class FieldWriteCount { |
||||
NEVER, |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes.IFEQ |
||||
import org.objectweb.asm.Opcodes.IFGE |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
public enum class IntBranchResult { |
||||
ALWAYS_TAKEN, NEVER_TAKEN, UNKNOWN; |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.Type |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.tree.analysis.BasicValue |
||||
import org.objectweb.asm.tree.analysis.Value |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
public sealed class IntValueSet { |
||||
public data class Constant(val values: Set<Int>) : IntValueSet() { |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet |
||||
import it.unimi.dsi.fastutil.ints.IntSet |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.Type |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.analysis |
||||
package org.openrs2.deob.bytecode.analysis |
||||
|
||||
import org.objectweb.asm.tree.analysis.BasicValue |
||||
import org.objectweb.asm.tree.analysis.Value |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.filter |
||||
package org.openrs2.deob.bytecode.filter |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.tree.MethodNode |
@ -1,6 +1,6 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.openrs2.deob.ArgRef |
||||
import org.openrs2.deob.bytecode.ArgRef |
||||
import org.openrs2.deob.util.map.NameMap |
||||
|
||||
public class ArgumentMappingGenerator( |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.openrs2.asm.classpath.ClassMetadata |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.openrs2.asm.classpath.ExtendedRemapper |
||||
import org.openrs2.asm.classpath.Library |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.Type |
||||
import org.openrs2.asm.MemberRef |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.openrs2.asm.MemberDesc |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
public class NameGenerator { |
||||
private val prefixes = mutableMapOf<String, Int>() |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
public class StaticClassMapping { |
||||
private val nameGenerator = NameGenerator() |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.tree.AbstractInsnNode |
||||
|
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.AbstractInsnNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.openrs2.asm.MemberRef |
@ -1,12 +1,12 @@ |
||||
package org.openrs2.deob.remap |
||||
package org.openrs2.deob.bytecode.remap |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.tree.AbstractInsnNode |
||||
import org.openrs2.asm.MemberRef |
||||
import org.openrs2.asm.classpath.ClassPath |
||||
import org.openrs2.asm.classpath.ExtendedRemapper |
||||
import org.openrs2.deob.ArgRef |
||||
import org.openrs2.deob.Profile |
||||
import org.openrs2.deob.bytecode.ArgRef |
||||
import org.openrs2.deob.bytecode.Profile |
||||
import org.openrs2.deob.util.map.NameMap |
||||
import org.openrs2.util.collect.DisjointSet |
||||
|
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Type |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import org.objectweb.asm.Opcodes |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import org.objectweb.asm.Type |
||||
import org.objectweb.asm.tree.AnnotationNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.tree.ClassNode |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.openrs2.asm.classpath.ClassPath |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,9 +1,9 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import org.openrs2.asm.classpath.ClassPath |
||||
import org.openrs2.asm.transform.Transformer |
||||
import org.openrs2.deob.Profile |
||||
import org.openrs2.deob.remap.TypedRemapper |
||||
import org.openrs2.deob.bytecode.Profile |
||||
import org.openrs2.deob.bytecode.remap.TypedRemapper |
||||
import org.openrs2.deob.util.map.NameMap |
||||
import javax.inject.Inject |
||||
import javax.inject.Singleton |
@ -1,4 +1,4 @@ |
||||
package org.openrs2.deob.transform |
||||
package org.openrs2.deob.bytecode.transform |
||||
|
||||
import com.github.michaelbull.logging.InlineLogger |
||||
import org.objectweb.asm.Opcodes |
@ -1,18 +0,0 @@ |
||||
package org.openrs2.deob |
||||
|
||||
import com.github.ajalt.clikt.core.CliktCommand |
||||
import com.google.inject.Guice |
||||
import java.nio.file.Paths |
||||
|
||||
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( |
||||
input = Paths.get("nonfree/share/client"), |
||||
output = Paths.get("nonfree/var/cache/deob") |
||||
) |
||||
} |
||||
} |
Loading…
Reference in new issue