about summary refs log tree commit diff stats
path: root/miasm/analysis/binary.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2020-08-22 12:47:01 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2020-08-31 07:50:01 +0200
commit80e40a3d2ca735db955807ad0605b43ca22e4e35 (patch)
tree4d41d7b53565f833444d3520eb22eed3e8bf26f1 /miasm/analysis/binary.py
parent5d8beb271d9890241a6d61dd476fab26ca37ebbf (diff)
downloadfocaccia-miasm-80e40a3d2ca735db955807ad0605b43ca22e4e35.tar.gz
focaccia-miasm-80e40a3d2ca735db955807ad0605b43ca22e4e35.zip
Avoid generate default locationdb
Diffstat (limited to 'miasm/analysis/binary.py')
-rw-r--r--miasm/analysis/binary.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/miasm/analysis/binary.py b/miasm/analysis/binary.py
index 36f3acb9..0548dc9d 100644
--- a/miasm/analysis/binary.py
+++ b/miasm/analysis/binary.py
@@ -3,7 +3,6 @@ import warnings
 
 from miasm.core.bin_stream import bin_stream_str, bin_stream_elf, bin_stream_pe
 from miasm.jitter.csts import PAGE_READ
-from miasm.core.locationdb import LocationDB
 
 
 log = logging.getLogger("binary")
@@ -35,15 +34,16 @@ class Container(object):
     fallback_container = None # Fallback container format
 
     @classmethod
-    def from_string(cls, data, *args, **kwargs):
+    def from_string(cls, data, loc_db, *args, **kwargs):
         """Instantiate a container and parse the binary
         @data: str containing the binary
+        @loc_db: LocationDB instance
         """
         log.info('Load binary')
         # Try each available format
         for container_type in cls.available_container:
             try:
-                return container_type(data, *args, **kwargs)
+                return container_type(data, loc_db, *args, **kwargs)
             except ContainerSignatureException:
                 continue
             except ContainerParsingException as error:
@@ -51,7 +51,7 @@ class Container(object):
 
         # Fallback mode
         log.warning('Fallback to string input')
-        return cls.fallback_container(data, *args, **kwargs)
+        return cls.fallback_container(data, loc_db, *args, **kwargs)
 
     @classmethod
     def register_container(cls, container):
@@ -79,17 +79,14 @@ class Container(object):
         """
         raise NotImplementedError("Abstract method")
 
-    def __init__(self, data, loc_db=None, **kwargs):
+    def __init__(self, data, loc_db, **kwargs):
         "Alias for 'parse'"
         # Init attributes
         self._executable = None
         self._bin_stream = None
         self._entry_point = None
         self._arch = None
-        if loc_db is None:
-            self._loc_db = LocationDB()
-        else:
-            self._loc_db = loc_db
+        self._loc_db = loc_db
 
         # Launch parsing
         self.parse(data, **kwargs)