these const push instructions are also push instructions. need to fix jumps to the logically dead conditionals.

This commit is contained in:
Adam
2015-08-02 11:50:20 -04:00
parent 516fa7805f
commit 1ac0cef696
16 changed files with 247 additions and 39 deletions

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class DConst_0 extends Instruction
public class DConst_0 extends Instruction implements PushConstantInstruction
{
public DConst_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class DConst_0 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Double(0.0d);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class DConst_1 extends Instruction
public class DConst_1 extends Instruction implements PushConstantInstruction
{
public DConst_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class DConst_1 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Double(1.0d);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class FConst_0 extends Instruction
public class FConst_0 extends Instruction implements PushConstantInstruction
{
public FConst_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class FConst_0 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Float(0.0f);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class FConst_1 extends Instruction
public class FConst_1 extends Instruction implements PushConstantInstruction
{
public FConst_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class FConst_1 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Float(1.0f);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class FConst_2 extends Instruction
public class FConst_2 extends Instruction implements PushConstantInstruction
{
public FConst_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class FConst_2 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Float(2.0f);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_0 extends Instruction
public class IConst_0 extends Instruction implements PushConstantInstruction
{
public IConst_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_0 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(0);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_1 extends Instruction
public class IConst_1 extends Instruction implements PushConstantInstruction
{
public IConst_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_1 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(1);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_2 extends Instruction
public class IConst_2 extends Instruction implements PushConstantInstruction
{
public IConst_2(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_2 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(2);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_3 extends Instruction
public class IConst_3 extends Instruction implements PushConstantInstruction
{
public IConst_3(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_3 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(3);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_4 extends Instruction
public class IConst_4 extends Instruction implements PushConstantInstruction
{
public IConst_4(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_4 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(4);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_5 extends Instruction
public class IConst_5 extends Instruction implements PushConstantInstruction
{
public IConst_5(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_5 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(5);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class IConst_M1 extends Instruction
public class IConst_M1 extends Instruction implements PushConstantInstruction
{
public IConst_M1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class IConst_M1 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Integer(-1);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class LConst_0 extends Instruction
public class LConst_0 extends Instruction implements PushConstantInstruction
{
public LConst_0(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class LConst_0 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Long(0);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View File

@@ -3,14 +3,16 @@ 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;
import info.sigterm.deob.execution.StackContext;
import info.sigterm.deob.pool.PoolEntry;
import java.io.IOException;
public class LConst_1 extends Instruction
public class LConst_1 extends Instruction implements PushConstantInstruction
{
public LConst_1(Instructions instructions, InstructionType type, int pc) throws IOException
{
@@ -30,4 +32,16 @@ public class LConst_1 extends Instruction
frame.addInstructionContext(ins);
}
@Override
public PoolEntry getConstant()
{
return new info.sigterm.deob.pool.Long(1);
}
@Override
public void setConstant(PoolEntry entry)
{
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}