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>");
        }
Exemple #4
0
        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&#xD;&#xA;12340000\" tag=\"ProgramDesigner\">" +
                   "<node text=\"Foo Processor\" tag=\"ArchitectureDesigner\" />" +
                   "<node text=\"(Unknown operating environment)\" tag=\"PlatformDesigner\" />" +
                   "<node text=\"Image base\" tip=\"Image base&#xD;&#xA;Address: 12340000&#xD;&#xA;Size: 1000&#xD;&#xA;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);
        }
Exemple #10
0
        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);
        }
Exemple #13
0
        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);
        }