public void PBS_UserProcedures() { var pbs = new ProjectBrowserService(sc, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); Given_UserProcedure(0x12340500, "MyFoo"); mr.ReplayAll(); pbs.Load(project); Expect( "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root>" + "<node " + "text=\"foo.exe\" " + "tip=\"c:\\test\\foo.exe" + cr + "12340000\" " + "tag=\"ProgramDesigner\">" + "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" + "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" + "<node " + "text=\"Image base\" " + "tip=\"Image base" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "rw-" + "\" " + "tag=\"ImageMapSegmentNodeDesigner\">" + "<node " + "text=\"MyFoo\" " + "tip=\"12340500\" " + "tag=\"ProcedureDesigner\" />" + "</node>" + "<node tag=\"ProgramResourceGroupDesigner\" />" + "</node>" + "</root>"); }
public void PBS_SingleBinary_Imports() { var pbs = new ProjectBrowserService(sc, tabPage.Object, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); Given_ImportedFunction(Address.Ptr32(0x123400), "KERNEL32", "LoadLibraryA"); pbs.Load(project); Assert.IsTrue(fakeTree.ShowNodeToolTips); Expect( "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root>" + "<node " + "text=\"foo.exe\" " + "tip=\"c:\\test\\foo.exe" + cr + "12300000\" " + "tag=\"ProgramDesigner\">" + "<node text=\"Architectures\" tag=\"TreeNodeCollectionDesigner\">" + "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" + "</node>" + "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" + "<node " + "text=\".text\" " + "tip=\".text" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "r-x" + "\" " + "tag=\"ImageMapSegmentNodeDesigner\" />" + "<node text=\"Imports\" tag=\"ImportDesigner\" />" + "<node tag=\"ProgramResourceGroupDesigner\" />" + "</node>" + "</root>"); }
public void PBS_AddBinary() { var pbs = new ProjectBrowserService(sc, tabPage.Object, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); Given_ImageMapItem(0x12340000); pbs.Load(project); var mem = new ByteMemoryArea(Address.Ptr32(0x1231300), new byte[128]); project.Programs.Add(new Program { Filename = "bar.exe", SegmentMap = new SegmentMap( mem.BaseAddress, new ImageSegment(".text", mem, AccessMode.ReadExecute)) }); Expect("<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root><node text=\"foo.exe\" tip=\"c:\\test\\foo.exe" + cr + "12300000\" tag=\"ProgramDesigner\">" + "<node text=\"Architectures\" tag=\"TreeNodeCollectionDesigner\">" + "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" + "</node>" + "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" + "<node text=\".text\" tip=\".text" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "r-x\" tag=\"ImageMapSegmentNodeDesigner\">" + "<node text=\"Global variables\" tag=\"GlobalVariablesNodeDesigner\" />" + "</node>" + "<node tag=\"ProgramResourceGroupDesigner\" />" + "</node>" + "</root>"); }
public void PBS_SingleBinary() { var pbs = new ProjectBrowserService(sc, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); Given_ImageMapItem(0x12340000); pbs.Load(project); Assert.IsTrue(fakeTree.ShowNodeToolTips); Expect( "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root>" + "<node " + "text=\"foo.exe\" " + "tip=\"c:\\test\\foo.exe" + cr + "12300000\" " + "tag=\"ProgramDesigner\">" + "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" + "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" + "<node " + "text=\".text\" " + "tip=\".text" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "r-x" + "\" " + "tag=\"ImageMapSegmentNodeDesigner\">" + "<node " + "text=\"Global variables\" " + "tag=\"GlobalVariablesNodeDesigner\" />" + "</node>" + "<node tag=\"ProgramResourceGroupDesigner\" />" + "</node>" + "</root>"); }
public void PBS_AddBinary() { var pbs = new ProjectBrowserService(sc, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); mr.ReplayAll(); pbs.Load(project); project.Programs.Add(new Program { Filename = "bar.exe", Image = new LoadedImage(Address.Ptr32(0x1231300), new byte[128]) }); Expect("<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root><node text=\"foo.exe\" tip=\"c:\\test\\foo.exe
12340000\" tag=\"ProgramDesigner\">" + "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" + "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" + "<node text=\"Image base\" tip=\"Image base
Address: 12340000
Size: 1000
rw-\" tag=\"ImageMapSegmentNodeDesigner\" />" + "<node tag=\"ProgramResourceGroupDesigner\" />" + "</node>" + "</root>"); mr.VerifyAll(); }
public void PBS_UserProcedures() { var pbs = new ProjectBrowserService(sc, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); Given_UserProcedure(0x12340500, "MyFoo"); mr.ReplayAll(); pbs.Load(project); Expect( "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root>" + "<node " + "text=\"foo.exe\" " + "tip=\"c:\\test\\foo.exe" + cr + "12340000\" " + "tag=\"Program\">" + "<node " + "text=\"Image base\" " + "tip=\"Image base" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "rw-" + "\" " + "tag=\"ImageMapSegment\">" + "<node " + "text=\"MyFoo\" " + "tip=\"12340500\" " + "tag=\"ProcedureDesigner\" />" + "</node>" + "</node>" + "</root>"); }
public void PBS_SingleBinary() { var pbs = new ProjectBrowserService(sc, fakeTree); Given_Project(); Given_ProgramWithOneSegment(); pbs.Load(project); Assert.IsTrue(fakeTree.ShowNodeToolTips); Expect( "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + "<root>" + "<node " + "text=\"foo.exe\" " + "tip=\"c:\\test\\foo.exe" + cr + "12340000\" " + "tag=\"Program\">" + "<node " + "text=\"Image base\" " + "tip=\"Image base" + cr + "Address: 12340000" + cr + "Size: 1000" + cr + "rw-" + "\" " + "tag=\"ImageMapSegment\" />" + "</node>" + "</root>"); }
public void PBS_NoProject() { var pbs = new ProjectBrowserService(sc, tabPage.Object, fakeTree); pbs.Load(null); Expect("<?xml version=\"1.0\" encoding=\"utf-16\"?><root><node text=\"(No project loaded)\" /></root>"); Assert.IsFalse(fakeTree.ShowRootLines); Assert.IsFalse(fakeTree.ShowNodeToolTips); }
private void btnLoad_Click(object sender, EventArgs e) { var image = new LoadedImage(Address.Ptr32(0x12312300), new byte[0x1000]); var imageMap = image.CreateImageMap(); var arch = new X86ArchitectureFlat32(); var program = new Core.Program(image, imageMap, arch, new DefaultPlatform(null, arch)); var project = new Project { Programs = { program } }; pbs.Load(project); }
private void btnLoad_Click(object sender, EventArgs e) { var mem = new MemoryArea(Address.Ptr32(0x12312300), new byte[0x1000]); var imageMap = new SegmentMap( mem.BaseAddress, new ImageSegment("code", mem, AccessMode.ReadWriteExecute)); var arch = new X86ArchitectureFlat32(); var program = new Core.Program(imageMap, arch, new DefaultPlatform(null, arch)); var project = new Project { Programs = { program } }; pbs.Load(project); }
public void PBS_RejectTextDrop() { var mockTree = new FakeTreeView(); var pbs = new ProjectBrowserService(sc, mockTree); var e = Given_DraggedText(); mr.ReplayAll(); var project = new Project(); pbs.Load(project); mockTree.PerformDragEnter(e); Assert.AreEqual(DragDropEffects.None, e.Effect); }
public void PBS_AcceptFiles() { var mockTree = new FakeTreeView(); var pbs = new ProjectBrowserService(sc, mockTree); var e = Given_DraggedFile(); mr.ReplayAll(); var project = new Project(); pbs.Load(project); mockTree.PerformDragEnter(e); Assert.AreEqual(DragDropEffects.Copy, e.Effect); }
private void btnLoad_Click(object sender, EventArgs e) { var mem = new ByteMemoryArea(Address.Ptr32(0x12312300), new byte[0x1000]); var imageMap = new SegmentMap( mem.BaseAddress, new ImageSegment("code", mem, AccessMode.ReadWriteExecute)); var sc = new ServiceContainer(); var arch = new X86ArchitectureFlat32(sc, "x86-protected-32", new Dictionary <string, object>()); var program = new Core.Program(imageMap, arch, new DefaultPlatform(sc, arch)); var project = new Project { Programs = { program } }; pbs.Load(project); }
public void PBS_AddTypeLib() { var mockTree = new FakeTreeView(); var pbs = new ProjectBrowserService(sc, tabPage.Object, mockTree); var project = new Project(); pbs.Load(project); project.MetadataFiles.Add(new MetadataFile { Filename = ".." + sep + "foo.tlb" }); Assert.AreEqual(1, mockTree.Nodes.Count); Assert.AreEqual("foo.tlb", mockTree.Nodes[0].Text); }
public void PBS_AddTypeLib() { mockTree = new FakeTreeView(); var pbs = new ProjectBrowserService(sc, mockTree); var project = new Project(); pbs.Load(project); project.MetadataFiles.Add(new MetadataFile { ModuleName = "..\\foo.tlb" }); Assert.AreEqual(1, mockTree.Nodes.Count); Assert.AreEqual("foo.tlb", mockTree.Nodes[0].Text); }
public void PBS_AcceptDrop() { string filename = null; var mockTree = new FakeTreeView(); var pbs = new ProjectBrowserService(sc, mockTree); pbs.FileDropped += (sender, ee) => { filename = ee.Filename; }; var e = Given_DraggedFile(); mr.ReplayAll(); var project = new Project(); pbs.Load(project); mockTree.PerformDragDrop(e); Assert.AreEqual("/home/bob/foo.exe", filename); }