use of com.google.security.zynamics.binnavi.disassembly.Modules.CModule in project binnavi by google.
the class CViewTest method testConstructor15.
@Test
public void testConstructor15() {
final MockSqlProvider sql = new MockSqlProvider();
final CModule module = MockCreator.createModule(sql);
final Date creationDate = new Date();
Date modificationDate = new Date();
final int viewId = new BigInteger(31, random).intValue();
final Calendar cal = Calendar.getInstance();
cal.setTime(modificationDate);
cal.add(Calendar.DATE, 1);
modificationDate = cal.getTime();
final CView view = new CView(viewId, module, "New View", "New View Description", ViewType.Native, GraphType.FLOWGRAPH, creationDate, modificationDate, 33, 44, new HashSet<CTag>(), new HashSet<CTag>(), false, sql);
assertEquals(viewId, view.getConfiguration().getId());
assertEquals("New View", view.getName());
assertEquals("New View Description", view.getConfiguration().getDescription());
assertEquals(ViewType.Native, view.getType());
assertEquals(GraphType.FLOWGRAPH, view.getGraphType());
assertEquals(33, view.getNodeCount());
assertEquals(44, view.getEdgeCount());
assertEquals(creationDate, view.getConfiguration().getCreationDate());
assertEquals(modificationDate, view.getConfiguration().getModificationDate());
final Set<CTag> tags = new HashSet<CTag>();
final CTag tag1 = new CTag(1, "Tag1", "Tag1 Tag1", TagType.VIEW_TAG, sql);
final CTag tag2 = new CTag(2, "Tag2", "Tag2 Tag2", TagType.VIEW_TAG, sql);
final CTag tag3 = new CTag(3, "Tag3", "Tag3 Tag3", TagType.VIEW_TAG, sql);
final CTag tag4 = new CTag(4, "Tag4", "Tag4 Tag4", TagType.VIEW_TAG, sql);
tags.add(tag1);
tags.add(tag2);
tags.add(tag3);
tags.add(tag4);
new CView(1, module, "New View", "New View Description", ViewType.Native, GraphType.FLOWGRAPH, creationDate, modificationDate, 33, 44, new HashSet<CTag>(), tags, false, sql);
tags.add(null);
try {
new CView(1, module, "New View", "New View Description", ViewType.Native, GraphType.FLOWGRAPH, creationDate, modificationDate, 33, 44, tags, new HashSet<CTag>(), false, sql);
fail();
} catch (final NullPointerException e) {
}
tags.clear();
tags.add(tag1);
tags.add(tag2);
tags.add(tag3);
tags.add(tag4);
final CTag tag5 = new CTag(5, "Tag1", "Tag1 Tag1", TagType.NODE_TAG, sql);
tags.add(tag5);
try {
new CView(1, module, "New View", "New View Description", ViewType.Native, GraphType.FLOWGRAPH, creationDate, modificationDate, 33, 44, tags, new HashSet<CTag>(), false, sql);
fail();
} catch (final IllegalArgumentException e) {
}
tags.clear();
final CTag tagWrongDB = new CTag(4, "Tag4", "Tag4 Tag4", TagType.VIEW_TAG, new MockSqlProvider());
tags.add(tagWrongDB);
try {
new CView(1, module, "New View", "New View Description", ViewType.Native, GraphType.FLOWGRAPH, creationDate, modificationDate, 33, 44, tags, new HashSet<CTag>(), false, sql);
fail();
} catch (final IllegalArgumentException e) {
}
}
use of com.google.security.zynamics.binnavi.disassembly.Modules.CModule in project binnavi by google.
the class CModulesToAddressSpaceHandler method drop.
@SuppressWarnings("unchecked")
@Override
public void drop(final DefaultMutableTreeNode parentNode, final Object data) {
final CAddressSpaceNode addressSpaceNode = (CAddressSpaceNode) parentNode;
final INaviAddressSpace addressSpace = addressSpaceNode.getObject();
final List<CModule> modules = (List<CModule>) data;
for (final CModule module : modules) {
CAddressSpaceFunctions.addModule(m_parent, addressSpace, module);
}
}
use of com.google.security.zynamics.binnavi.disassembly.Modules.CModule in project binnavi by google.
the class ViewGraphHelpersTest method setUp.
@Before
public void setUp() throws CouldntLoadDataException, LoadCancelledException, com.google.security.zynamics.binnavi.API.disassembly.CouldntLoadDataException, PartialLoadException {
final MockSqlProvider provider = new MockSqlProvider();
final TagManager tagManager = new TagManager(new MockTagManager(TagType.NODE_TAG));
final TagManager viewTagManager = new TagManager(new CTagManager(new Tree<CTag>(new TreeNode<CTag>(new CTag(1, "", "", TagType.VIEW_TAG, provider))), TagType.VIEW_TAG, provider));
final Database database = new Database(new MockDatabase());
final CModule internalModule = new CModule(1, "", "", new Date(), new Date(), "00000000000000000000000000000000", "0000000000000000000000000000000000000000", 0, 0, new CAddress(0), new CAddress(0), null, null, Integer.MAX_VALUE, false, provider);
internalModule.load();
final Module module = new Module(database, internalModule, tagManager, viewTagManager);
final CModuleViewGenerator generator = new CModuleViewGenerator(provider, internalModule);
final INaviView internalView = generator.generate(1, "My View", "My View Description", com.google.security.zynamics.zylib.disassembly.ViewType.NonNative, GraphType.MIXED_GRAPH, new Date(), new Date(), 1, 2, new HashSet<CTag>(), new HashSet<CTag>(), false);
m_view = new View(module, internalView, tagManager, viewTagManager);
m_view.load();
final List<INaviInstruction> instructions = new ArrayList<INaviInstruction>();
instructions.add(new CInstruction(false, internalModule, new CAddress(0x123), "nop", new ArrayList<COperandTree>(), new byte[] { (byte) 0x90 }, "x86-32", provider));
instructions.add(new CInstruction(false, internalModule, new CAddress(0x124), "nop", new ArrayList<COperandTree>(), new byte[] { (byte) 0x90 }, "x86-32", provider));
instructions.add(new CInstruction(false, internalModule, new CAddress(0x125), "nop", new ArrayList<COperandTree>(), new byte[] { (byte) 0x90 }, "x86-32", provider));
final INaviCodeNode codeNode = internalView.getContent().createCodeNode(null, instructions);
final List<INaviViewNode> nodes1 = new ArrayList<INaviViewNode>();
nodes1.add(codeNode);
final List<INaviEdge> edges1 = new ArrayList<INaviEdge>();
final CFunction internalFunction = new CFunction(internalModule, new MockView(nodes1, edges1, provider), new CAddress(0x123), "Mock Function", "Mock Function", "Mock Description", 0, 0, 0, 0, FunctionType.NORMAL, "", 0, null, null, null, provider);
internalFunction.load();
final Function function = new Function(module, internalFunction);
final CFunctionNode functionNode = new CFunctionNode(0, internalFunction, 0, 0, 0, 0, Color.RED, false, false, null, new HashSet<CTag>(), provider);
m_codeNode = new CodeNode(m_view, codeNode, tagManager);
m_functionNode = new FunctionNode(m_view, functionNode, function, tagManager);
m_textNode = new TextNode(m_view, new MockTextNode(), tagManager);
final List<ViewNode> nodes = Lists.newArrayList(m_codeNode, m_functionNode, m_textNode);
final List<ViewEdge> edges = Lists.newArrayList(new ViewEdge(new MockEdge(1, provider), nodes.get(0), nodes.get(0)));
m_graph = new ViewGraph(nodes, edges);
}
use of com.google.security.zynamics.binnavi.disassembly.Modules.CModule in project binnavi by google.
the class ViewGraphTest method testConstructor.
@Test
public void testConstructor() throws CouldntLoadDataException, LoadCancelledException {
final MockSqlProvider provider = new MockSqlProvider();
final TagManager tagManager = new TagManager(new MockTagManager(TagType.NODE_TAG));
final TagManager viewTagManager = new TagManager(new CTagManager(new Tree<CTag>(new TreeNode<CTag>(new CTag(1, "", "", TagType.VIEW_TAG, provider))), TagType.VIEW_TAG, provider));
final Database database = new Database(new MockDatabase());
final CModule internalModule = new CModule(1, "", "", new Date(), new Date(), "00000000000000000000000000000000", "0000000000000000000000000000000000000000", 0, 0, new CAddress(0), new CAddress(0), null, null, Integer.MAX_VALUE, false, provider);
internalModule.load();
final Module module = new Module(database, internalModule, tagManager, viewTagManager);
final CModuleViewGenerator generator = new CModuleViewGenerator(provider, internalModule);
final INaviView internalView = generator.generate(1, "My View", "My View Description", com.google.security.zynamics.zylib.disassembly.ViewType.NonNative, GraphType.MIXED_GRAPH, new Date(), new Date(), 1, 2, new HashSet<CTag>(), new HashSet<CTag>(), false);
final View view = new View(module, internalView, tagManager, viewTagManager);
final List<ViewNode> nodes = Lists.newArrayList((ViewNode) new TextNode(view, new MockTextNode(), tagManager));
final List<ViewEdge> edges = Lists.newArrayList(new ViewEdge(new MockEdge(1, provider), nodes.get(0), nodes.get(0)));
final ViewGraph graph = new ViewGraph(nodes, edges);
assertEquals(1, graph.getNodes().size());
assertEquals(nodes.get(0), graph.getNodes().get(0));
assertEquals(1, graph.getEdges().size());
assertEquals(edges.get(0), graph.getEdges().get(0));
assertEquals("View Graph [1 nodes, 1 edges]", graph.toString());
}
use of com.google.security.zynamics.binnavi.disassembly.Modules.CModule in project binnavi by google.
the class ViewNodeTest method setUp.
@Before
public void setUp() throws CouldntSaveDataException, CouldntLoadDataException, LoadCancelledException, FileReadException {
ConfigManager.instance().read();
final MockSqlProvider provider = new MockSqlProvider();
final Database database = new Database(new MockDatabase());
final CModule internalModule = new CModule(123, "Name", "Comment", new Date(), new Date(), CommonTestObjects.MD5, CommonTestObjects.SHA1, 55, 66, new CAddress(0x555), new CAddress(0x666), new DebuggerTemplate(1, "Mock Debugger", "localhaus", 88, provider), null, Integer.MAX_VALUE, false, provider);
internalModule.load();
final CTagManager mockTagManager = new CTagManager(new Tree<CTag>(new TreeNode<CTag>(new CTag(1, "Root", "", TagType.NODE_TAG, provider))), TagType.NODE_TAG, provider);
m_nodeTagManager = new TagManager(mockTagManager);
final TagManager viewTagManager = new TagManager(new MockTagManager(com.google.security.zynamics.binnavi.Tagging.TagType.VIEW_TAG));
final CFunction parentFunction = new CFunction(internalModule, new MockView(), new CAddress(0x123), "Mock Function", "Mock Function", "Mock Description", 0, 0, 0, 0, FunctionType.NORMAL, "", 0, null, null, null, provider);
final Function function = new Function(ModuleFactory.get(), parentFunction);
final Module module = new Module(database, internalModule, m_nodeTagManager, viewTagManager) {
@Override
public Function getFunction(final INaviFunction internalFunction) {
return function;
}
@Override
public boolean isLoaded() {
return true;
}
};
final CFunction internalFunction = new CFunction(internalModule, new MockView(), new CAddress(0x123), "", "", "", 0, 0, 0, 0, FunctionType.NORMAL, "", 0, null, null, null, provider);
final ITreeNode<CTag> tag = mockTagManager.addTag(mockTagManager.getRootTag(), "Initial Tag");
m_initialTag = m_nodeTagManager.getRootTags().get(0);
final CView internalView = internalModule.getContent().getViewContainer().createView("", "");
final CFunctionNode node = internalView.getContent().createFunctionNode(internalFunction);
node.setColor(Color.MAGENTA);
node.setX(10);
node.setY(20);
node.tagNode(tag.getObject());
m_view = module.getViews().get(2);
m_node = (FunctionNode) m_view.getGraph().getNodes().get(0);
final CFunctionNode node2 = internalView.getContent().createFunctionNode(internalFunction);
internalView.getContent().createEdge(node, node2, EdgeType.INTER_MODULE);
}
Aggregations