diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-08-07 21:10:57 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-08-08 16:12:00 +0200 |
| commit | e6f2b1431e0364583385a44d03a78775d9578dd9 (patch) | |
| tree | 3d90eb0691e82eac184cf0160add783f0a8a68c3 /miasm2/ir/symbexec.py | |
| parent | bb1a8f8289cd7132f5013fbe198d59d98fc6f158 (diff) | |
| download | miasm-e6f2b1431e0364583385a44d03a78775d9578dd9.tar.gz miasm-e6f2b1431e0364583385a44d03a78775d9578dd9.zip | |
Symbexec: add get_block
Diffstat (limited to 'miasm2/ir/symbexec.py')
| -rw-r--r-- | miasm2/ir/symbexec.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/miasm2/ir/symbexec.py b/miasm2/ir/symbexec.py index 6d6ba630..593ab49a 100644 --- a/miasm2/ir/symbexec.py +++ b/miasm2/ir/symbexec.py @@ -16,6 +16,18 @@ log.addHandler(console_handler) log.setLevel(logging.INFO) +def get_block(ir_arch, mdis, addr): + """Get IRBlock at address @addr""" + lbl = ir_arch.get_label(addr) + if not lbl in ir_arch.blocks: + block = mdis.dis_block(lbl.offset) + ir_arch.add_block(block) + irblock = ir_arch.get_block(lbl) + if irblock is None: + raise LookupError('No block found at that address: %s' % lbl) + return irblock + + class SymbolMngr(object): """ Store registers and memory symbolic values |