about summary refs log tree commit diff stats
path: root/miasm2/jitter/jitcore.py
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2017-07-21 17:26:01 +0200
committerAjax <commial@gmail.com>2017-07-21 17:26:01 +0200
commit5bad1c259075bb730da09942b1a6f5c4d3de6af2 (patch)
treed75efbdbe695fc7443d12e402b75070735173b23 /miasm2/jitter/jitcore.py
parent4dfca940e75ad8af65b69dd9bab9ff503141984b (diff)
downloadmiasm-5bad1c259075bb730da09942b1a6f5c4d3de6af2.tar.gz
miasm-5bad1c259075bb730da09942b1a6f5c4d3de6af2.zip
Jit: merge duplicate hash code
Diffstat (limited to 'miasm2/jitter/jitcore.py')
-rw-r--r--miasm2/jitter/jitcore.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/miasm2/jitter/jitcore.py b/miasm2/jitter/jitcore.py
index 6c4d197e..cc49240c 100644
--- a/miasm2/jitter/jitcore.py
+++ b/miasm2/jitter/jitcore.py
@@ -15,6 +15,8 @@
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #
+from hashlib import md5
+
 from miasm2.core import asmblock
 from miasm2.core.interval import interval
 from miasm2.core.utils import BoundedDict
@@ -267,3 +269,15 @@ class JitCore(object):
         for addr_start, addr_stop in vm.get_memory_write():
             mem_range.append((addr_start, addr_stop))
         self.updt_automod_code_range(vm, mem_range)
+
+    def hash_block(self, block):
+        """
+        Build a hash of the block @block
+        @block: asmblock
+        """
+        block_raw = "".join(line.b for line in block.lines)
+        block_hash = md5("%X_%s_%s_%s" % (block.label.offset,
+                                          self.log_mn,
+                                          self.log_regs,
+                                          block_raw)).hexdigest()
+        return block_hash