diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-01-27 19:24:12 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-02-03 23:19:44 +0100 |
| commit | c22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd (patch) | |
| tree | 80b483215591815110b90d1d40fe92314dddb4fa /miasm2/jitter/loader/elf.py | |
| parent | a9f8b5d5939cd4359919f0fef40bdd5c1f9c6441 (diff) | |
| download | miasm-c22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd.tar.gz miasm-c22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd.zip | |
Binary: add more elf symbols
Diffstat (limited to 'miasm2/jitter/loader/elf.py')
| -rw-r--r-- | miasm2/jitter/loader/elf.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/miasm2/jitter/loader/elf.py b/miasm2/jitter/loader/elf.py index b94a9309..17041372 100644 --- a/miasm2/jitter/loader/elf.py +++ b/miasm2/jitter/loader/elf.py @@ -65,6 +65,20 @@ def fill_loc_db_with_symbols(elf, loc_db, base_addr=0): # Get symbol sections symbol_sections = [] for section_header in elf.sh: + if hasattr(section_header, 'symbols'): + for name, sym in section_header.symbols.iteritems(): + if not name or sym.value == 0: + continue + name = loc_db.find_free_name(name) + loc_db.add_location(name, sym.value, strict=False) + + if hasattr(section_header, 'reltab'): + for rel in section_header.reltab: + if not rel.sym or rel.offset == 0: + continue + name = loc_db.find_free_name(rel.sym) + loc_db.add_location(name, rel.offset, strict=False) + if hasattr(section_header, 'symtab'): log.debug("Find %d symbols in %r", len(section_header.symtab), section_header) |