Add local var table instruction type and make relevant instructions

implement it
This commit is contained in:
Adam
2015-05-04 15:36:38 -04:00
parent 267efc7940
commit e70466fc0a
55 changed files with 726 additions and 55 deletions

View File

@@ -42,7 +42,7 @@ public class Deob
//execute(group);
JarOutputStream jout = new JarOutputStream(new FileOutputStream("d:/rs/07/adamout.jar"), new Manifest());
JarOutputStream jout = new JarOutputStream(new FileOutputStream(args[1]), new Manifest());
for (ClassFile cf : group.getClasses())
{

View File

@@ -21,7 +21,7 @@ public class Method
private int nameIndex;
private int descriptorIndex;
private Attributes attributes;
public List<Node> callsTo = new ArrayList<>(),
private List<Node> callsTo = new ArrayList<>(),
callsFrom = new ArrayList<>();
Method(Methods methods) throws IOException

View File

@@ -0,0 +1,7 @@
package info.sigterm.deob.attributes.code.instruction.types;
public interface LVTInstruction
{
public int getVariableIndex();
public boolean store();
}

View File

@@ -1,15 +1,17 @@
package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.Method;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class ALoad extends Instruction
public class ALoad extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +37,16 @@ public class ALoad extends Instruction
Object obj = frame.getVariables().get(index);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ALoad_0 extends Instruction
public class ALoad_0 extends Instruction implements LVTInstruction
{
public ALoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class ALoad_0 extends Instruction
Object obj = frame.getVariables().get(0);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ALoad_1 extends Instruction
public class ALoad_1 extends Instruction implements LVTInstruction
{
public ALoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class ALoad_1 extends Instruction
Object obj = frame.getVariables().get(1);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ALoad_2 extends Instruction
public class ALoad_2 extends Instruction implements LVTInstruction
{
public ALoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class ALoad_2 extends Instruction
Object obj = frame.getVariables().get(2);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ALoad_3 extends Instruction
public class ALoad_3 extends Instruction implements LVTInstruction
{
public ALoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class ALoad_3 extends Instruction
Object obj = frame.getVariables().get(3);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class AStore extends Instruction
public class AStore extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class AStore extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(index, obj);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class AStore_0 extends Instruction
public class AStore_0 extends Instruction implements LVTInstruction
{
public AStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class AStore_0 extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(0, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class AStore_1 extends Instruction
public class AStore_1 extends Instruction implements LVTInstruction
{
public AStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class AStore_1 extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(1, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class AStore_2 extends Instruction
public class AStore_2 extends Instruction implements LVTInstruction
{
public AStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class AStore_2 extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(2, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class AStore_3 extends Instruction
public class AStore_3 extends Instruction implements LVTInstruction
{
public AStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class AStore_3 extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(3, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class DLoad extends Instruction
public class DLoad extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class DLoad extends Instruction
double d = (double) frame.getVariables().get(index);
frame.getStack().push(this, d);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DLoad_0 extends Instruction
public class DLoad_0 extends Instruction implements LVTInstruction
{
public DLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DLoad_0 extends Instruction
assert obj instanceof Double;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DLoad_1 extends Instruction
public class DLoad_1 extends Instruction implements LVTInstruction
{
public DLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DLoad_1 extends Instruction
assert obj instanceof Double;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DLoad_2 extends Instruction
public class DLoad_2 extends Instruction implements LVTInstruction
{
public DLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DLoad_2 extends Instruction
assert obj instanceof Double;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DLoad_3 extends Instruction
public class DLoad_3 extends Instruction implements LVTInstruction
{
public DLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DLoad_3 extends Instruction
assert obj instanceof Double;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class DStore extends Instruction
public class DStore extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class DStore extends Instruction
double d = (double) frame.getStack().pop();
frame.getVariables().set(index, d);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DStore_0 extends Instruction
public class DStore_0 extends Instruction implements LVTInstruction
{
public DStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DStore_0 extends Instruction
assert obj instanceof Double;
frame.getVariables().set(0, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DStore_1 extends Instruction
public class DStore_1 extends Instruction implements LVTInstruction
{
public DStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DStore_1 extends Instruction
assert obj instanceof Double;
frame.getVariables().set(1, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DStore_2 extends Instruction
public class DStore_2 extends Instruction implements LVTInstruction
{
public DStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DStore_2 extends Instruction
assert obj instanceof Double;
frame.getVariables().set(2, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class DStore_3 extends Instruction
public class DStore_3 extends Instruction implements LVTInstruction
{
public DStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class DStore_3 extends Instruction
assert obj instanceof Double;
frame.getVariables().set(3, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class FLoad extends Instruction
public class FLoad extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class FLoad extends Instruction
float f = (float) frame.getVariables().get(index);
frame.getStack().push(this, f);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FLoad_0 extends Instruction
public class FLoad_0 extends Instruction implements LVTInstruction
{
public FLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FLoad_0 extends Instruction
assert obj instanceof Float;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FLoad_1 extends Instruction
public class FLoad_1 extends Instruction implements LVTInstruction
{
public FLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FLoad_1 extends Instruction
assert obj instanceof Float;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FLoad_2 extends Instruction
public class FLoad_2 extends Instruction implements LVTInstruction
{
public FLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FLoad_2 extends Instruction
assert obj instanceof Float;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FLoad_3 extends Instruction
public class FLoad_3 extends Instruction implements LVTInstruction
{
public FLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FLoad_3 extends Instruction
assert obj instanceof Float;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class FStore extends Instruction
public class FStore extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class FStore extends Instruction
float f = (float) frame.getStack().pop();
frame.getVariables().set(index, f);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FStore_0 extends Instruction
public class FStore_0 extends Instruction implements LVTInstruction
{
public FStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FStore_0 extends Instruction
assert obj instanceof Float;
frame.getVariables().set(0, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FStore_1 extends Instruction
public class FStore_1 extends Instruction implements LVTInstruction
{
public FStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FStore_1 extends Instruction
assert obj instanceof Float;
frame.getVariables().set(1, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FStore_2 extends Instruction
public class FStore_2 extends Instruction implements LVTInstruction
{
public FStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FStore_2 extends Instruction
assert obj instanceof Float;
frame.getVariables().set(2, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class FStore_3 extends Instruction
public class FStore_3 extends Instruction implements LVTInstruction
{
public FStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class FStore_3 extends Instruction
assert obj instanceof Float;
frame.getVariables().set(3, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class IInc extends Instruction
public class IInc extends Instruction implements LVTInstruction
{
private byte index;
private byte inc;
@@ -39,4 +40,16 @@ public class IInc extends Instruction
i += inc;
frame.getVariables().set(index, i);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false; // This is a get first
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class ILoad extends Instruction
public class ILoad extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class ILoad extends Instruction
Object i = frame.getVariables().get(index);
frame.getStack().push(this, i);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ILoad_0 extends Instruction
public class ILoad_0 extends Instruction implements LVTInstruction
{
public ILoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class ILoad_0 extends Instruction
assert obj instanceof Integer;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ILoad_1 extends Instruction
public class ILoad_1 extends Instruction implements LVTInstruction
{
public ILoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -20,4 +21,16 @@ public class ILoad_1 extends Instruction
Object obj = frame.getVariables().get(1);
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ILoad_2 extends Instruction
public class ILoad_2 extends Instruction implements LVTInstruction
{
public ILoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class ILoad_2 extends Instruction
assert obj instanceof Integer;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class ILoad_3 extends Instruction
public class ILoad_3 extends Instruction implements LVTInstruction
{
public ILoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class ILoad_3 extends Instruction
assert obj instanceof Integer;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class IStore extends Instruction
public class IStore extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class IStore extends Instruction
Object obj = frame.getStack().pop();
frame.getVariables().set(index, obj);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class IStore_0 extends Instruction
public class IStore_0 extends Instruction implements LVTInstruction
{
public IStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class IStore_0 extends Instruction
assert obj instanceof Integer;
frame.getVariables().set(0, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class IStore_1 extends Instruction
public class IStore_1 extends Instruction implements LVTInstruction
{
public IStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class IStore_1 extends Instruction
assert obj instanceof Integer;
frame.getVariables().set(1, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class IStore_2 extends Instruction
public class IStore_2 extends Instruction implements LVTInstruction
{
public IStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class IStore_2 extends Instruction
assert obj instanceof Integer;
frame.getVariables().set(2, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class IStore_3 extends Instruction
public class IStore_3 extends Instruction implements LVTInstruction
{
public IStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class IStore_3 extends Instruction
assert obj instanceof Integer;
frame.getVariables().set(3, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class LLoad extends Instruction
public class LLoad extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class LLoad extends Instruction
long l = (long) frame.getVariables().get(index);
frame.getStack().push(this, l);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LLoad_0 extends Instruction
public class LLoad_0 extends Instruction implements LVTInstruction
{
public LLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LLoad_0 extends Instruction
assert obj instanceof Long;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LLoad_1 extends Instruction
public class LLoad_1 extends Instruction implements LVTInstruction
{
public LLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LLoad_1 extends Instruction
assert obj instanceof Long;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LLoad_2 extends Instruction
public class LLoad_2 extends Instruction implements LVTInstruction
{
public LLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LLoad_2 extends Instruction
assert obj instanceof Long;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LLoad_3 extends Instruction
public class LLoad_3 extends Instruction implements LVTInstruction
{
public LLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LLoad_3 extends Instruction
assert obj instanceof Long;
frame.getStack().push(this, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return false;
}
}

View File

@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class LStore extends Instruction
public class LStore extends Instruction implements LVTInstruction
{
private int index;
@@ -35,4 +36,16 @@ public class LStore extends Instruction
long l = (long) frame.getStack().pop();
frame.getVariables().set(index, l);
}
@Override
public int getVariableIndex()
{
return index;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LStore_0 extends Instruction
public class LStore_0 extends Instruction implements LVTInstruction
{
public LStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LStore_0 extends Instruction
assert obj instanceof Long;
frame.getVariables().set(0, obj);
}
@Override
public int getVariableIndex()
{
return 0;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LStore_1 extends Instruction
public class LStore_1 extends Instruction implements LVTInstruction
{
public LStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LStore_1 extends Instruction
assert obj instanceof Long;
frame.getVariables().set(1, obj);
}
@Override
public int getVariableIndex()
{
return 1;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LStore_2 extends Instruction
public class LStore_2 extends Instruction implements LVTInstruction
{
public LStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LStore_2 extends Instruction
assert obj instanceof Long;
frame.getVariables().set(2, obj);
}
@Override
public int getVariableIndex()
{
return 2;
}
@Override
public boolean store()
{
return true;
}
}

View File

@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
import info.sigterm.deob.attributes.code.Instruction;
import info.sigterm.deob.attributes.code.InstructionType;
import info.sigterm.deob.attributes.code.Instructions;
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
import info.sigterm.deob.execution.Frame;
import java.io.IOException;
public class LStore_3 extends Instruction
public class LStore_3 extends Instruction implements LVTInstruction
{
public LStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -21,4 +22,16 @@ public class LStore_3 extends Instruction
assert obj instanceof Long;
frame.getVariables().set(3, obj);
}
@Override
public int getVariableIndex()
{
return 3;
}
@Override
public boolean store()
{
return true;
}
}