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())
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())
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))
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))