コード例 #1
0
ファイル: test_core.py プロジェクト: gapry/L4OS
 def test_get_file_data(self):
     data = ByteArray("pants")
     sect = UnpreparedElfSection("test", data=data)
     self.assertEquals(sect.get_file_data(), data)
     sect = UnpreparedElfSection("test", section_type=SHT_NOBITS)
     sect.set_size(10)
     self.assertEquals(sect.get_file_data(), ByteArray())
コード例 #2
0
ファイル: test_core.py プロジェクト: saif1413/L4OS
 def test_get_file_data(self):
     data = ByteArray("pants")
     sect = UnpreparedElfSection("test", data=data)
     self.assertEquals(sect.get_file_data(), data)
     sect = UnpreparedElfSection("test", section_type=SHT_NOBITS)
     sect.set_size(10)
     self.assertEquals(sect.get_file_data(), ByteArray())
コード例 #3
0
ファイル: test_core.py プロジェクト: gapry/L4OS
    def test_remove_nobits(self):
        for file_name in [
            "data/null_elf",
            "data/arm_exec",
            "data/arm_exec_nosect",
            "data/arm_object",
            "data/mips64_exec",
            "data/mips32_exec",
            "data/ia32_exec",
            "data/amd64_exec",
            "data/ia64_exec",
        ]:
            ef = PreparedElfFile(filename=file_name)
            if ef.segments:
                seg_sizes = []
                for segment in ef.segments:
                    seg_sizes.append((segment.get_memsz(), segment.get_filesz()))
                ef.remove_nobits()
                count = 0
                for segment in ef.segments:
                    self.assertEqual(segment.get_memsz(), segment.get_filesz())
                    self.assertEqual(segment.get_memsz(), seg_sizes[count][0])
                    count += 1

        ef = UnpreparedElfFile()
        sec = UnpreparedElfSection(section_type=SHT_NOBITS, data=10)
        self.assertEqual(sec.get_size(), 10)
        ef.add_section(sec)
        ef.remove_nobits()
        sec = ef.sections[1]
        self.assertEqual(sec.type, SHT_PROGBITS)
        self.assertEqual(sec.get_size(), 10)
        self.assertEqual(sec.get_file_data(), ByteArray("\0" * 10))
コード例 #4
0
ファイル: test_core.py プロジェクト: paromix/okl4
    def test_remove_nobits(self):
        for file_name in ["data/null_elf",
                          "data/arm_exec",
                          "data/arm_stripped_exec",
                          "data/arm_exec_nosect",
                          "data/arm_object",
                          "data/mips64_exec",
                          "data/mips32_exec",
                          "data/ia32_exec",
                          "data/amd64_exec",
                          "data/ia64_exec",
                          ]:
            ef = PreparedElfFile(filename=file_name)
            if ef.segments:
                seg_sizes = []
                for segment in ef.segments:
                    seg_sizes.append((segment.get_memsz(), segment.get_filesz()))
                ef.remove_nobits()
                for segment, seg_size in zip(ef.segments, seg_sizes):
                    self.assertEqual(segment.get_memsz(), segment.get_filesz())
                    self.assertEqual(segment.get_memsz(), seg_size[0])

        ef = UnpreparedElfFile()
        sec = UnpreparedElfSection(None, section_type=SHT_NOBITS, data=10)
        self.assertEqual(sec.get_size(), 10)
        ef.add_section(sec)
        ef.remove_nobits()
        sec = ef.sections[1]
        self.assertEqual(sec.type, SHT_PROGBITS)
        self.assertEqual(sec.get_size(), 10)
        self.assertEqual(sec.get_file_data(), ByteArray('\0' * 10))