about summary refs log tree commit diff stats
path: root/miasm2/jitter/loader/elf.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-01-27 19:24:12 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-02-03 23:19:44 +0100
commitc22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd (patch)
tree80b483215591815110b90d1d40fe92314dddb4fa /miasm2/jitter/loader/elf.py
parenta9f8b5d5939cd4359919f0fef40bdd5c1f9c6441 (diff)
downloadmiasm-c22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd.tar.gz
miasm-c22769c31f7fb7ecfdfd952757eb37d4d7e5dfbd.zip
Binary: add more elf symbols
Diffstat (limited to '')
-rw-r--r--miasm2/jitter/loader/elf.py14
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)