#-------------------------------------------------------------------------------# elftools example: elf_notes.py## An example of obtaining note sections from an ELF file and examining# the notes 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.sections import NoteSectionfrom elftools.common.py3compat import bytes2hexdef process_file(filename):print('Processing file:', filename)with open(filename, 'rb') as f:for sect in ELFFile(f).iter_sections():if not isinstance(sect, NoteSection):continueprint(' Note section "%s" at offset 0x%.8x with size %d' % (sect.name, sect.header['sh_offset'], sect.header['sh_size']))for note in sect.iter_notes():print(' Name:', note['n_name'])print(' Type:', note['n_type'])desc = note['n_desc']if note['n_type'] == 'NT_GNU_ABI_TAG':print(' Desc: %s, ABI: %d.%d.%d' % (desc['abi_os'],desc['abi_major'],desc['abi_minor'],desc['abi_tiny']))elif note['n_type'] in {'NT_GNU_BUILD_ID', 'NT_GNU_GOLD_VERSION'}:print(' Desc:', desc)else:print(' Desc:', bytes2hex(desc))if __name__ == '__main__':if sys.argv[1] == '--test':for filename in sys.argv[2:]:process_file(filename)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。