Beispiel #1
0
        public void EIL_LoadStringTable()
        {
            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.LoadSectionHeaders();
        }
Beispiel #2
0
        public void EIL_LoadStringTable()
        {
            var eil = new ElfImageLoader(sc, ImageLocation.FromUri("file:foo"), rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.Sections.AddRange(el.LoadSectionHeaders());
        }
Beispiel #3
0
        public void EIL_LoadProgramHeaders()
        {
            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.LoadSegments();
            el.LoadSectionHeaders();
            //el.Dump(Console.Out);
        }
Beispiel #4
0
        public void EIL_LoadProgramHeaders()
        {
            var eil = new ElfImageLoader(sc, ImageLocation.FromUri("file:foo"), rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.LoadSegments();
            el.Sections.AddRange(el.LoadSectionHeaders());
            //el.Dump(Console.Out);
        }
Beispiel #5
0
        public void EIL_LoadProgramHeaders()
        {
            mr.ReplayAll();

            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.LoadProgramHeaderTable();
            el.LoadSectionHeaders();
            //el.Dump(Console.Out);

            mr.VerifyAll();
        }
Beispiel #6
0
        public void EIL_LoadCellLv2()
        {
            var opEl     = mr.Stub <OperatingEnvironment>();
            var platform = new DefaultPlatform(sc, arch);

            cfgSvc.Stub(d => d.GetEnvironment("elf-cell-lv2")).Return(opEl);
            opEl.Expect(o => o.Load(null, null)).IgnoreArguments().Return(platform);
            mr.ReplayAll();

            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = eil.CreateLoader();

            el.LoadPlatform(0x66, arch);        // ELFOSABI_CELL_LV2;

            mr.VerifyAll();
        }
Beispiel #7
0
        public void EIL_LoadCellLv2()
        {
            var opEl     = new Mock <PlatformDefinition>();
            var platform = new DefaultPlatform(sc, arch.Object);

            cfgSvc.Setup(d => d.GetEnvironment("elf-cell-lv2")).Returns(opEl.Object);
            opEl.Setup(o => o.Load(
                           It.IsAny <IServiceProvider>(),
                           It.IsAny <IProcessorArchitecture>()))
            .Returns(platform)
            .Verifiable();

            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = eil.CreateLoader();

            el.LoadPlatform(0x66, arch.Object);        // ELFOSABI_CELL_LV2;

            opEl.VerifyAll();
        }
Beispiel #8
0
        public void EIL_LoadSections()
        {
            mr.ReplayAll();

            var eil = new ElfImageLoader(sc, "foo", rawImg);

            eil.LoadElfIdentification();
            var el = (ElfLoader32)eil.CreateLoader();

            el.LoadSectionHeaders();

            Assert.AreEqual("", el.Sections[0].Name);
            Assert.AreEqual(".interp", el.Sections[1].Name);
            Assert.AreEqual(".note.ABI-tag", el.Sections[2].Name);
            Assert.AreEqual(".hash", el.Sections[3].Name);
            Assert.AreEqual(".dynsym", el.Sections[4].Name);
            Assert.AreEqual(".dynstr", el.Sections[5].Name);
            Assert.AreEqual(".gnu.version", el.Sections[6].Name);
            Assert.AreEqual(".gnu.version_r", el.Sections[7].Name);
            Assert.AreEqual(".rel.dyn", el.Sections[8].Name);
            Assert.AreEqual(".rel.plt", el.Sections[9].Name);
            Assert.AreEqual(".init", el.Sections[10].Name);
            Assert.AreEqual(".plt", el.Sections[11].Name);
            Assert.AreEqual(".text", el.Sections[12].Name);
            Assert.AreEqual(".fini", el.Sections[13].Name);
            Assert.AreEqual(".rodata", el.Sections[14].Name);
            Assert.AreEqual(".eh_frame", el.Sections[15].Name);
            Assert.AreEqual(".ctors", el.Sections[16].Name);
            Assert.AreEqual(".dtors", el.Sections[17].Name);
            Assert.AreEqual(".jcr", el.Sections[18].Name);
            Assert.AreEqual(".dynamic", el.Sections[19].Name);
            Assert.AreEqual(".got", el.Sections[20].Name);
            Assert.AreEqual(".got.plt", el.Sections[21].Name);
            Assert.AreEqual(".data", el.Sections[22].Name);
            Assert.AreEqual(".bss", el.Sections[23].Name);
            Assert.AreEqual(".comment", el.Sections[24].Name);
            Assert.AreEqual(".shstrtab", el.Sections[25].Name);
            Assert.AreEqual(".symtab", el.Sections[26].Name);
            Assert.AreEqual(".strtab", el.Sections[27].Name);
        }