def iter_notes(self): """ Iterates the list of notes in the segment. """ offset = self['p_offset'] end = self['p_offset'] + self['p_filesz'] while offset < end: note = struct_parse(self.elffile.structs.Elf_Nhdr, self.stream, stream_pos=offset) note['n_offset'] = offset offset += self.elffile.structs.Elf_Nhdr.sizeof() self.stream.seek(offset) # n_namesz is 4-byte aligned. disk_namesz = roundup(note['n_namesz'], 2) note['n_name'] = bytes2str( CString('').parse(self.stream.read(disk_namesz))) offset += disk_namesz desc_data = bytes2str(self.stream.read(note['n_descsz'])) note['n_desc'] = desc_data offset += roundup(note['n_descsz'], 2) note['n_size'] = offset - note['n_offset'] yield note
def iter_notes(self): """ Iterates the list of notes in the segment. """ offset = self['p_offset'] end = self['p_offset'] + self['p_filesz'] while offset < end: note = struct_parse( self._elfstructs.Elf_Nhdr, self.stream, stream_pos=offset) note['n_offset'] = offset offset += self._elfstructs.Elf_Nhdr.sizeof() self.stream.seek(offset) # n_namesz is 4-byte aligned. disk_namesz = roundup(note['n_namesz'], 2) note['n_name'] = bytes2str( CString('').parse(self.stream.read(disk_namesz))) offset += disk_namesz desc_data = bytes2str(self.stream.read(note['n_descsz'])) note['n_desc'] = desc_data offset += roundup(note['n_descsz'], 2) note['n_size'] = offset - note['n_offset'] yield note