Thinking on modinverse
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
package info.sigterm.deob.attributes.code.instruction.types;
|
||||
|
||||
import info.sigterm.deob.pool.Field;
|
||||
|
||||
public interface GetFieldInstruction
|
||||
{
|
||||
public Field getField();
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package info.sigterm.deob.attributes.code.instruction.types;
|
||||
|
||||
import info.sigterm.deob.pool.PoolEntry;
|
||||
|
||||
public interface PushConstantInstruction
|
||||
{
|
||||
public PoolEntry getConstant();
|
||||
}
|
||||
@@ -3,17 +3,19 @@ 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.GetFieldInstruction;
|
||||
import info.sigterm.deob.execution.Frame;
|
||||
import info.sigterm.deob.execution.InstructionContext;
|
||||
import info.sigterm.deob.execution.Stack;
|
||||
import info.sigterm.deob.execution.StackContext;
|
||||
import info.sigterm.deob.execution.Type;
|
||||
import info.sigterm.deob.pool.Field;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class GetField extends Instruction
|
||||
public class GetField extends Instruction implements GetFieldInstruction
|
||||
{
|
||||
private Field field;
|
||||
|
||||
@@ -47,4 +49,10 @@ public class GetField extends Instruction
|
||||
|
||||
frame.addInstructionContext(ins);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Field getField()
|
||||
{
|
||||
return field;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import info.sigterm.deob.ClassFile;
|
||||
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.GetFieldInstruction;
|
||||
import info.sigterm.deob.execution.Frame;
|
||||
import info.sigterm.deob.execution.InstructionContext;
|
||||
import info.sigterm.deob.execution.Stack;
|
||||
@@ -17,7 +18,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class GetStatic extends Instruction
|
||||
public class GetStatic extends Instruction implements GetFieldInstruction
|
||||
{
|
||||
private Field field;
|
||||
|
||||
@@ -65,4 +66,10 @@ public class GetStatic extends Instruction
|
||||
f.addReference(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Field getField()
|
||||
{
|
||||
return field;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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.PushConstantInstruction;
|
||||
import info.sigterm.deob.execution.Frame;
|
||||
import info.sigterm.deob.execution.InstructionContext;
|
||||
import info.sigterm.deob.execution.Stack;
|
||||
@@ -13,7 +14,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class LDC extends Instruction
|
||||
public class LDC extends Instruction implements PushConstantInstruction
|
||||
{
|
||||
private PoolEntry value;
|
||||
|
||||
@@ -56,4 +57,10 @@ public class LDC extends Instruction
|
||||
|
||||
frame.addInstructionContext(ins);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PoolEntry getConstant()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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.PushConstantInstruction;
|
||||
import info.sigterm.deob.execution.Frame;
|
||||
import info.sigterm.deob.execution.InstructionContext;
|
||||
import info.sigterm.deob.execution.Stack;
|
||||
@@ -13,7 +14,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class LDC2_W extends Instruction
|
||||
public class LDC2_W extends Instruction implements PushConstantInstruction
|
||||
{
|
||||
private PoolEntry value;
|
||||
|
||||
@@ -44,4 +45,10 @@ public class LDC2_W extends Instruction
|
||||
|
||||
frame.addInstructionContext(ins);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PoolEntry getConstant()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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.PushConstantInstruction;
|
||||
import info.sigterm.deob.execution.Frame;
|
||||
import info.sigterm.deob.execution.InstructionContext;
|
||||
import info.sigterm.deob.execution.Stack;
|
||||
@@ -13,7 +14,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class LDC_W extends Instruction
|
||||
public class LDC_W extends Instruction implements PushConstantInstruction
|
||||
{
|
||||
private PoolEntry value;
|
||||
|
||||
@@ -59,4 +60,10 @@ public class LDC_W extends Instruction
|
||||
{
|
||||
return "ldc_w " + value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PoolEntry getConstant()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user