use of com.google.security.zynamics.binnavi.disassembly.MockFunction in project binnavi by google.
the class CBreakpointFunctionsTest method test6removeFunctions.
@Test
public void test6removeFunctions() throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {
final MockFunction mockFunction = new MockFunction();
final INaviModule mockModule = mockFunction.getModule();
CFunctionContainerHelper.addFunction(mockModule.getContent().getFunctionContainer(), mockFunction);
final DebugTargetSettings target = new ModuleTargetSettings(mockModule);
final DebuggerProvider debuggerProvider = new DebuggerProvider(target);
final MockDebugger debugger = new MockDebugger(new ModuleTargetSettings(mockModule));
debugger.getBreakpointManager().addBreakpoints(BreakpointType.REGULAR, Sets.newHashSet(new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x1234)))));
@SuppressWarnings("unused") final Breakpoint breakPoint = debugger.getBreakpointManager().getBreakpoint(BreakpointType.REGULAR, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x1234))));
debuggerProvider.addDebugger(debugger);
final CBreakpointTableModel tableModel = new CBreakpointTableModel(debuggerProvider);
assertEquals(1, tableModel.getRowCount());
final IFilledList<Pair<IDebugger, INaviFunction>> targets = new FilledList<Pair<IDebugger, INaviFunction>>();
final Pair<IDebugger, INaviFunction> targetPair = new Pair<IDebugger, INaviFunction>(debugger, mockFunction);
targets.add(targetPair);
assertEquals(1, targets.size());
CBreakpointRemoveFunctions.removeBreakpoints(targets);
@SuppressWarnings("unused") final BreakpointManager manager = debugger.getBreakpointManager();
assertEquals(0, tableModel.getRowCount());
}
use of com.google.security.zynamics.binnavi.disassembly.MockFunction in project binnavi by google.
the class CBreakpointFunctionsTest method test7setBreakpoints.
@Test
public void test7setBreakpoints() throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {
final MockFunction mockFunction = new MockFunction();
final INaviModule mockModule = mockFunction.getModule();
CFunctionContainerHelper.addFunction(mockModule.getContent().getFunctionContainer(), mockFunction);
final DebugTargetSettings target = new ModuleTargetSettings(mockModule);
final DebuggerProvider debuggerProvider = new DebuggerProvider(target);
final MockDebugger debugger = new MockDebugger(new ModuleTargetSettings(mockModule));
debugger.getBreakpointManager().addBreakpoints(BreakpointType.REGULAR, Sets.newHashSet(new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x1234)))));
@SuppressWarnings("unused") final Breakpoint breakPoint = debugger.getBreakpointManager().getBreakpoint(BreakpointType.REGULAR, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x1234))));
// CBreakpointAddress address = new CBreakpointAddress(mockModule, new CUnrelocatedAddress(new
// CAddress(0x2c9)));
debuggerProvider.addDebugger(debugger);
final CBreakpointTableModel tableModel = new CBreakpointTableModel(debuggerProvider);
assertEquals(1, tableModel.getRowCount());
final IFilledList<Pair<IDebugger, INaviFunction>> targets = new FilledList<Pair<IDebugger, INaviFunction>>();
final Pair<IDebugger, INaviFunction> targetPair = new Pair<IDebugger, INaviFunction>(debugger, mockFunction);
targets.add(targetPair);
CBreakpointRemoveFunctions.removeBreakpoints(targets);
assertEquals(0, tableModel.getRowCount());
CBreakpointSetFunctions.setBreakpoints(targets);
assertEquals(1, tableModel.getRowCount());
}
use of com.google.security.zynamics.binnavi.disassembly.MockFunction in project binnavi by google.
the class CCodeNodeParserTest method testAddZero.
@Test
public void testAddZero() throws ParserException, CPartialLoadException, IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {
// 00000000: mov eax, [esp+0]
final MockCodeNodeProvider cnProvider = new MockCodeNodeProvider();
final MockCodeNodeData instruction2 = new MockCodeNodeData();
instruction2.nodeId = 5193;
instruction2.address = new CAddress(0x4180dd);
instruction2.mnemonic = "mov";
instruction2.operandPosition = 0;
instruction2.expressionId = 1;
instruction2.expressionType = 6;
instruction2.symbol = "b4";
instruction2.immediate = null;
instruction2.parentId = 0;
instruction2.replacement = null;
final MockCodeNodeData instruction3 = new MockCodeNodeData();
instruction3.nodeId = 5193;
instruction3.address = new CAddress(0x4180dd);
instruction3.mnemonic = "mov";
instruction3.operandPosition = 0;
instruction3.expressionId = 29;
instruction3.expressionType = 4;
instruction3.symbol = "ss:";
instruction3.immediate = null;
instruction3.parentId = 1;
instruction3.replacement = null;
final MockCodeNodeData instruction4 = new MockCodeNodeData();
instruction4.nodeId = 5193;
instruction4.address = new CAddress(0x4180dd);
instruction4.mnemonic = "mov";
instruction4.operandPosition = 0;
instruction4.expressionId = 30;
instruction4.expressionType = 7;
instruction4.symbol = "[";
instruction4.immediate = null;
instruction4.parentId = 29;
instruction4.replacement = null;
final MockCodeNodeData instruction5 = new MockCodeNodeData();
instruction5.nodeId = 5193;
instruction5.address = new CAddress(0x4180dd);
instruction5.mnemonic = "mov";
instruction5.operandPosition = 0;
instruction5.expressionId = 31;
instruction5.expressionType = 4;
instruction5.symbol = "+";
instruction5.immediate = null;
instruction5.parentId = 30;
instruction5.replacement = null;
final MockCodeNodeData instruction6 = new MockCodeNodeData();
instruction6.nodeId = 5193;
instruction6.address = new CAddress(0x4180dd);
instruction6.mnemonic = "mov";
instruction6.operandPosition = 0;
instruction6.expressionId = 32;
instruction6.expressionType = 5;
instruction6.symbol = "esp";
instruction6.immediate = null;
instruction6.parentId = 31;
instruction6.replacement = null;
final MockCodeNodeData instruction7 = new MockCodeNodeData();
instruction7.nodeId = 5193;
instruction7.address = new CAddress(0x4180dd);
instruction7.mnemonic = "mov";
instruction7.operandPosition = 0;
instruction7.expressionId = 498;
instruction7.expressionType = 2;
instruction7.symbol = null;
instruction7.immediate = "0";
instruction7.parentId = 31;
instruction7.replacement = "134h+var_134";
final MockCodeNodeData instruction1 = new MockCodeNodeData();
instruction1.nodeId = 5193;
instruction1.address = new CAddress(0x4180dd);
instruction1.mnemonic = "mov";
instruction1.operandPosition = 1;
instruction1.expressionId = 1594;
instruction1.expressionType = 2;
instruction1.symbol = null;
instruction1.immediate = "4561216";
instruction1.parentId = 0;
instruction1.replacement = null;
cnProvider.data.add(instruction2);
cnProvider.data.add(instruction3);
cnProvider.data.add(instruction4);
cnProvider.data.add(instruction5);
cnProvider.data.add(instruction6);
cnProvider.data.add(instruction7);
cnProvider.data.add(instruction1);
final MockSqlProvider provider = new MockSqlProvider();
final MockModule module = new MockModule();
CFunctionContainerHelper.addFunction(module.getContent().getFunctionContainer(), new MockFunction(0));
final CCodeNodeParser p = new CCodeNodeParser(cnProvider, Lists.newArrayList(module), provider);
final List<CCodeNode> result = p.parse();
assertEquals(1, result.size());
assertEquals(1, Iterables.size(result.get(0).getInstructions()));
final ReilTranslator<INaviInstruction> translator = new ReilTranslator<INaviInstruction>();
try {
translator.translate(new StandardEnvironment(), Iterables.get(result.get(0).getInstructions(), 0));
} catch (final InternalTranslationException exception) {
CUtilityFunctions.logException(exception);
}
}
use of com.google.security.zynamics.binnavi.disassembly.MockFunction in project binnavi by google.
the class PostgreSQLFunctionNotificationParserTest method testFunctionInform3Resolve.
@Test
public void testFunctionInform3Resolve() throws CouldntLoadDataException {
final INaviFunction forwardFunction = new MockFunction(provider);
function.setForwardedFunctionInternal(forwardFunction);
assertTrue(function.isForwarded());
assertEquals(forwardFunction.getAddress(), function.getForwardedFunctionAddress());
assertEquals(forwardFunction.getModule().getConfiguration().getId(), function.getForwardedFunctionModuleId());
final FunctionNotificationContainer container = new FunctionNotificationContainer(module.getConfiguration().getId(), module, function.getAddress(), "UPDATE");
final PostgreSQLFunctionNotificationParser parser = new PostgreSQLFunctionNotificationParser();
parser.inform(Lists.newArrayList(container), provider);
assertFalse(function.isForwarded());
assertNull(function.getForwardedFunctionAddress());
assertEquals(0, function.getForwardedFunctionModuleId());
}
use of com.google.security.zynamics.binnavi.disassembly.MockFunction in project binnavi by google.
the class CCrossReferenceTest method test2getCalledFunction.
@Test
public void test2getCalledFunction() {
final MockFunction function = new MockFunction();
final CCrossReference reference = new CCrossReference(function, function);
assertEquals(function, reference.getCalledFunction());
assertEquals(function, reference.getCallingFunction());
}
Aggregations