use of com.google.security.zynamics.reil.algorithms.mono.valuetracking.ValueTrackerElement in project binnavi by google.
the class AddTransformerTest method testAddRegisterConstant.
@Test
public void testAddRegisterConstant() {
final ReilInstruction instruction = ReilHelpers.createAdd(0x100, OperandSize.DWORD, "t0", OperandSize.DWORD, "4", OperandSize.QWORD, "t1");
final ValueTrackerElement state = new ValueTrackerElement();
final ValueTrackerElement result = AddTransformer.transform(instruction, state);
assertTrue(result.getState("t1") instanceof Addition);
assertTrue(((Addition) result.getState("t1")).getLhs() instanceof Symbol);
assertTrue(((Addition) result.getState("t1")).getRhs() instanceof Literal);
}
use of com.google.security.zynamics.reil.algorithms.mono.valuetracking.ValueTrackerElement in project binnavi by google.
the class CombineTest method testIndependentBaseRegisters.
@Test
public void testIndependentBaseRegisters() {
final ReilInstruction instruction1 = ReilHelpers.createAdd(100, OperandSize.DWORD, "esi", OperandSize.DWORD, "4", OperandSize.DWORD, "eax");
final ReilInstruction instruction2 = ReilHelpers.createAdd(101, OperandSize.DWORD, "edi", OperandSize.DWORD, "8", OperandSize.DWORD, "eax");
final ReilInstruction instruction3 = ReilHelpers.createStr(102, OperandSize.DWORD, "eax", OperandSize.DWORD, "ebx");
final ReilBlock block1 = new ReilBlock(Lists.newArrayList(instruction1));
final ReilBlock block2 = new ReilBlock(Lists.newArrayList(instruction2));
final ReilBlock block3 = new ReilBlock(Lists.newArrayList(instruction3));
final ReilEdge edge1 = new ReilEdge(block1, block3, EdgeType.JUMP_UNCONDITIONAL);
final ReilEdge edge2 = new ReilEdge(block2, block3, EdgeType.JUMP_UNCONDITIONAL);
ReilBlock.link(block1, block3, edge1);
ReilBlock.link(block2, block3, edge2);
final ReilFunction function = new ReilFunction("Fark", new ReilGraph(Lists.newArrayList(block1, block2, block3), Lists.newArrayList(edge1, edge2)));
System.out.println(function.getGraph());
final IStateVector<InstructionGraphNode, ValueTrackerElement> result = ValueTracker.track(function);
System.out.println(result);
}
Aggregations