#-------------------------------------------------------------------------------# elftools example: elf_relocations.py## An example of obtaining a relocation section from an ELF file and examining# the relocation entries it contains.## Eli Bendersky (eliben@gmail.com)# This code is in the public domain#-------------------------------------------------------------------------------from __future__ import print_functionimport sys# If pyelftools is not installed, the example can also run from the root or# examples/ dir of the source distribution.sys.path[0:0] = ['.', '..']from elftools.elf.elffile import ELFFilefrom elftools.elf.relocation import RelocationSectiondef process_file(filename):print('Processing file:', filename)with open(filename, 'rb') as f:elffile = ELFFile(f)# Read the .rela.dyn section from the file, by explicitly asking# ELFFile for this section# The section names are stringsreladyn_name = '.rela.dyn'reladyn = elffile.get_section_by_name(reladyn_name)if not isinstance(reladyn, RelocationSection):print(' The file has no %s section' % reladyn_name)print(' %s section with %s relocations' % (reladyn_name, reladyn.num_relocations()))for reloc in reladyn.iter_relocations():print(' Relocation (%s)' % 'RELA' if reloc.is_RELA() else 'REL')# Relocation entry attributes are available through item lookupprint(' offset = %s' % reloc['r_offset'])if __name__ == '__main__':if sys.argv[1] == '--test':for filename in sys.argv[2:]:process_file(filename)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。