Add local var table instruction type and make relevant instructions
implement it
This commit is contained in:
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package info.sigterm.deob.attributes.code.instruction.types;
|
||||
|
||||
public interface LVTInstruction
|
||||
{
|
||||
public int getVariableIndex();
|
||||
public boolean store();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user