use of com.google.security.zynamics.zylib.disassembly.CAddress in project binnavi by google.
the class CBreakpointFunctionsTest method test4DisableBreakpoints.
@Test
public void test4DisableBreakpoints() {
final INaviModule mockModule = new MockModule();
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(0)))));
final Breakpoint breakPoint = debugger.getBreakpointManager().getBreakpoint(BreakpointType.REGULAR, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0))));
@SuppressWarnings("unused") final CAddress address = new CAddress(0);
final BaseNode root = new BaseNode();
final BreakpointCondition bpCondition = new BreakpointCondition("foo", root);
breakPoint.setCondition(bpCondition);
breakPoint.setDescription("purzel");
debuggerProvider.addDebugger(debugger);
@SuppressWarnings("unused") final CBreakpointTableModel tableModel = new CBreakpointTableModel(debuggerProvider);
final int[] rows = { 0 };
final int[] rows2 = { 1 };
assertFalse(CBreakpointFunctions.allDisabled(debuggerProvider, rows));
try {
CBreakpointRemoveFunctions.disableBreakpoints(debuggerProvider, rows2);
} catch (final IllegalArgumentException e) {
}
CBreakpointRemoveFunctions.disableBreakpoints(debuggerProvider, rows);
assertTrue(CBreakpointFunctions.allDisabled(debuggerProvider, rows));
}
use of com.google.security.zynamics.zylib.disassembly.CAddress in project binnavi by google.
the class CEventTableModelTest method testSimple.
/**
* General test whether the model is working as expected.
*
* @throws RecognitionException
*/
@Test
public void testSimple() throws RecognitionException {
final INaviModule mockModule = new MockModule();
final INaviModule mockModule2 = new MockModule(true);
final INaviModule mockModule3 = new MockModule();
final CEventTableModel model = new CEventTableModel();
final TraceList list = new TraceList(1, "", "", new MockSqlProvider());
list.addEvent(new TraceEvent(1, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x123))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 05 }))));
list.addEvent(new TraceEvent(1, new BreakpointAddress(mockModule2, new UnrelocatedAddress(new CAddress(0x124))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 06 }))));
list.addEvent(new TraceEvent(1, new BreakpointAddress(mockModule3, new UnrelocatedAddress(new CAddress(0x125))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 07, 05 }))));
assertEquals(0, model.getRowCount());
model.setEventList(list);
assertEquals(3, model.getRowCount());
final IFilter<ITraceEvent> filter = new CTraceFilterCreator().createFilter("mem == 05");
model.setFilter(filter);
assertEquals(2, model.getRowCount());
assertEquals(2, model.getEvents().size());
assertEquals(0x123, model.getEvents().get(0).getOffset().getAddress().getAddress().toLong());
assertEquals(0x125, model.getEvents().get(1).getOffset().getAddress().getAddress().toLong());
model.setFilter(null);
assertEquals(3, model.getRowCount());
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
model.getValueAt(i, j);
}
}
}
use of com.google.security.zynamics.zylib.disassembly.CAddress in project binnavi by google.
the class CTraceFilterCreatorTest method test.
@Test
public void test() throws RecognitionException {
final INaviModule mockModule = new MockModule();
final INaviModule mockModule2 = new MockModule(true);
final INaviModule mockModule3 = new MockModule();
final List<ITraceEvent> events = new ArrayList<ITraceEvent>();
final TraceEvent event1 = new TraceEvent(77, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x123))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 05 })));
final TraceEvent event2 = new TraceEvent(88, new BreakpointAddress(mockModule2, new UnrelocatedAddress(new CAddress(0x124))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 06 })));
final TraceEvent event3 = new TraceEvent(99, new BreakpointAddress(mockModule3, new UnrelocatedAddress(new CAddress(0x125))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 07, 05 })));
events.add(event1);
events.add(event2);
events.add(event3);
final CTraceFilterCreator creator = new CTraceFilterCreator();
final IFilter<ITraceEvent> defaultFilter = creator.createFilter("99");
assertEquals(1, defaultFilter.get(events).size());
assertEquals(event3, defaultFilter.get(events).get(0));
final IFilter<ITraceEvent> memoryFilter = creator.createFilter("mem == 06");
assertEquals(1, memoryFilter.get(events).size());
assertEquals(event2, memoryFilter.get(events).get(0));
final IFilter<ITraceEvent> registerFilter = creator.createFilter("eax == 291");
assertEquals(3, registerFilter.get(events).size());
}
use of com.google.security.zynamics.zylib.disassembly.CAddress in project binnavi by google.
the class CTraceFilterCreatorTest method testAlternativeInput.
@Test
public void testAlternativeInput() throws RecognitionException {
final INaviModule mockModule = new MockModule();
final INaviModule mockModule2 = new MockModule(true);
final INaviModule mockModule3 = new MockModule();
final List<ITraceEvent> events = new ArrayList<ITraceEvent>();
final TraceEvent event1 = new TraceEvent(77, new BreakpointAddress(mockModule, new UnrelocatedAddress(new CAddress(0x123))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 05 })));
final TraceEvent event2 = new TraceEvent(88, new BreakpointAddress(mockModule2, new UnrelocatedAddress(new CAddress(0x124))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 06 })));
final TraceEvent event3 = new TraceEvent(99, new BreakpointAddress(mockModule3, new UnrelocatedAddress(new CAddress(0x125))), TraceEventType.REGULAR_BREAKPOINT, Lists.newArrayList(new TraceRegister("eax", new CAddress(0x123), new byte[] { 07, 05 })));
events.add(event1);
events.add(event2);
events.add(event3);
final CTraceFilterCreator creator = new CTraceFilterCreator();
final IFilter<ITraceEvent> memoryFilter = creator.createFilter("mem == 6");
assertEquals(1, memoryFilter.get(events).size());
assertEquals(event2, memoryFilter.get(events).get(0));
final IFilter<ITraceEvent> registerFilter = creator.createFilter("eax == 0x123");
assertEquals(3, registerFilter.get(events).size());
final IFilter<ITraceEvent> brokenRegisterFilter = creator.createFilter("eax == 0x123111111111111111111111111111");
assertEquals(0, brokenRegisterFilter.get(events).size());
}
use of com.google.security.zynamics.zylib.disassembly.CAddress in project binnavi by google.
the class CDumpAllWaiterTest method testCloseRequested.
@Test
public void testCloseRequested() throws Exception {
final MockDebugger debugger = new MockDebugger(new ModuleTargetSettings(CommonTestObjects.MODULE));
debugger.connect();
final CDumpAllWaiter waiter = new CDumpAllWaiter(debugger, new CAddress(0x300), 0x100);
waiter.start();
new Thread() {
@Override
public void run() {
try {
waiter.runExpensiveCommand();
} catch (final Exception e) {
}
}
}.start();
Thread.sleep(250);
waiter.closeRequested();
Thread.sleep(250);
debugger.close();
assertFalse(waiter.isAlive());
assertTrue(waiter.success());
}
Aggregations