Thinking on modinverse

This commit is contained in:
Adam
2015-06-23 19:29:32 -04:00
parent 815b2e2931
commit 85fc94dd57
13 changed files with 219 additions and 5 deletions

View File

@@ -0,0 +1,8 @@
package info.sigterm.deob.attributes.code.instruction.types;
import info.sigterm.deob.pool.Field;
public interface GetFieldInstruction
{
public Field getField();
}

View File

@@ -0,0 +1,8 @@
package info.sigterm.deob.attributes.code.instruction.types;
import info.sigterm.deob.pool.PoolEntry;
public interface PushConstantInstruction
{
public PoolEntry getConstant();
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}