I dont know if this works or is correct but it runs?
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
package info.sigterm.deob.attributes.code.instruction.types;
|
||||
|
||||
import info.sigterm.deob.attributes.code.Instruction;
|
||||
import java.util.List;
|
||||
|
||||
public interface JumpingInstruction
|
||||
{
|
||||
public void buildJumpGraph();
|
||||
|
||||
List<Instruction> getJumps();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import info.sigterm.deob.execution.Frame;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Goto extends Instruction implements JumpingInstruction
|
||||
{
|
||||
@@ -71,4 +73,10 @@ public class Goto extends Instruction implements JumpingInstruction
|
||||
if (to == oldi)
|
||||
to = newi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
return Arrays.asList(to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import info.sigterm.deob.execution.Frame;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class GotoW extends Instruction implements JumpingInstruction
|
||||
{
|
||||
@@ -61,4 +63,10 @@ public class GotoW extends Instruction implements JumpingInstruction
|
||||
if (to == oldi)
|
||||
to = newi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
return Arrays.asList(to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import info.sigterm.deob.execution.StackContext;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class If extends Instruction implements JumpingInstruction, ComparisonInstruction
|
||||
{
|
||||
@@ -71,8 +73,9 @@ public class If extends Instruction implements JumpingInstruction, ComparisonIns
|
||||
to = newi;
|
||||
}
|
||||
|
||||
public Instruction getTo()
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
return to;
|
||||
return Arrays.asList(to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import info.sigterm.deob.execution.StackContext;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class If0 extends Instruction implements JumpingInstruction, ComparisonInstruction
|
||||
{
|
||||
@@ -70,8 +72,9 @@ public class If0 extends Instruction implements JumpingInstruction, ComparisonIn
|
||||
to = newi;
|
||||
}
|
||||
|
||||
public Instruction getTo()
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
return to;
|
||||
return Arrays.asList(to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class LookupSwitch extends Instruction implements JumpingInstruction
|
||||
@@ -132,4 +133,14 @@ public class LookupSwitch extends Instruction implements JumpingInstruction
|
||||
if (branchi.get(i) == oldi)
|
||||
branchi.set(i, newi);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
List<Instruction> list = new ArrayList<>();
|
||||
for (Instruction i : branchi)
|
||||
list.add(i);
|
||||
list.add(defi);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,4 +129,14 @@ public class TableSwitch extends Instruction implements JumpingInstruction
|
||||
if (branchi.get(i) == oldi)
|
||||
branchi.set(i, newi);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Instruction> getJumps()
|
||||
{
|
||||
List<Instruction> list = new ArrayList<>();
|
||||
for (Instruction i : branchi)
|
||||
list.add(i);
|
||||
list.add(defi);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user