about summary refs log tree commit diff stats
path: root/example/symbol_exec
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2020-12-07 17:28:54 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2020-12-24 17:15:46 +0100
commite6ec952904419c73531ab62443ade23985317daf (patch)
treecb7063e3958c2b7e65d29cb25bb38a64e6a2f060 /example/symbol_exec
parentf178c253c4665cb3e495073168dc244782d07c17 (diff)
downloadmiasm-e6ec952904419c73531ab62443ade23985317daf.tar.gz
miasm-e6ec952904419c73531ab62443ade23985317daf.zip
Rename ira => LifterModelCall
Diffstat (limited to 'example/symbol_exec')
-rw-r--r--example/symbol_exec/depgraph.py2
-rw-r--r--example/symbol_exec/dse_crackme.py22
-rw-r--r--example/symbol_exec/single_instr.py10
3 files changed, 17 insertions, 17 deletions
diff --git a/example/symbol_exec/depgraph.py b/example/symbol_exec/depgraph.py
index 8285452e..62190e6b 100644
--- a/example/symbol_exec/depgraph.py
+++ b/example/symbol_exec/depgraph.py
@@ -52,7 +52,7 @@ for element in args.element:
         raise ValueError("Unknown element '%s'" % element)
 
 mdis = machine.dis_engine(cont.bin_stream, dont_dis_nulstart_bloc=True, loc_db=loc_db)
-ir_arch = machine.ira(loc_db)
+ir_arch = machine.lifter_model_call(loc_db)
 
 # Common argument forms
 init_ctx = {}
diff --git a/example/symbol_exec/dse_crackme.py b/example/symbol_exec/dse_crackme.py
index e014ada2..cdaf5a1a 100644
--- a/example/symbol_exec/dse_crackme.py
+++ b/example/symbol_exec/dse_crackme.py
@@ -137,7 +137,7 @@ FILE_stream = ExprId("FILE_0", 64)
 FILE_size = ExprId("FILE_0_size", 64)
 
 def xxx_fopen_symb(dse):
-    regs = dse.ir_arch.arch.regs
+    regs = dse.lifter.arch.regs
     fname_addr = dse.eval_expr(regs.RDI)
     mode = dse.eval_expr(regs.RSI)
     assert fname_addr.is_int()
@@ -151,13 +151,13 @@ def xxx_fopen_symb(dse):
 
     dse.update_state({
         regs.RSP: dse.eval_expr(regs.RSP + ExprInt(8, regs.RSP.size)),
-        dse.ir_arch.IRDst: ret_addr,
+        dse.lifter.IRDst: ret_addr,
         regs.RIP: ret_addr,
         regs.RAX: ret_value,
     })
 
 def xxx_fread_symb(dse):
-    regs = dse.ir_arch.arch.regs
+    regs = dse.lifter.arch.regs
     ptr = dse.eval_expr(regs.RDI)
     size = dse.eval_expr(regs.RSI)
     nmemb = dse.eval_expr(regs.RDX)
@@ -179,21 +179,21 @@ def xxx_fread_symb(dse):
 
     update.update({
         regs.RSP: dse.symb.eval_expr(regs.RSP + ExprInt(8, regs.RSP.size)),
-        dse.ir_arch.IRDst: ret_addr,
+        dse.lifter.IRDst: ret_addr,
         regs.RIP: ret_addr,
         regs.RAX: ret_value,
     })
     dse.update_state(update)
 
 def xxx_fclose_symb(dse):
-    regs = dse.ir_arch.arch.regs
+    regs = dse.lifter.arch.regs
     stream = dse.eval_expr(regs.RDI)
     FILE_to_info_symb[stream].close()
 
     ret_addr = ExprInt(dse.jitter.get_stack_arg(0), regs.RIP.size)
     dse.update_state({
         regs.RSP: dse.symb.eval_expr(regs.RSP + ExprInt(8, regs.RSP.size)),
-        dse.ir_arch.IRDst: ret_addr,
+        dse.lifter.IRDst: ret_addr,
         regs.RIP: ret_addr,
         regs.RAX: ExprInt(0, regs.RAX.size),
     })
@@ -203,7 +203,7 @@ def xxx_fclose_symb(dse):
 def xxx___libc_start_main_symb(dse):
     # ['RDI', 'RSI', 'RDX', 'RCX', 'R8', 'R9']
     # main, argc, argv, ...
-    regs = dse.ir_arch.arch.regs
+    regs = dse.lifter.arch.regs
     top_stack = dse.eval_expr(regs.RSP)
     main_addr = dse.eval_expr(regs.RDI)
     argc = dse.eval_expr(regs.RSI)
@@ -214,8 +214,8 @@ def xxx___libc_start_main_symb(dse):
         ExprMem(top_stack, 64): hlt_addr,
         regs.RDI: argc,
         regs.RSI: argv,
-        dse.ir_arch.IRDst: main_addr,
-        dse.ir_arch.pc: main_addr,
+        dse.lifter.IRDst: main_addr,
+        dse.lifter.pc: main_addr,
     })
 
 # Stop the execution on puts and get back the corresponding string
@@ -248,9 +248,9 @@ dse.attach(sb.jitter)
 # Update the jitter state: df is read, but never set
 # Approaches: specific or generic
 # - Specific:
-#   df_value = ExprInt(sb.jitter.cpu.df, dse.ir_arch.arch.regs.df.size)
+#   df_value = ExprInt(sb.jitter.cpu.df, dse.lifter.arch.regs.df.size)
 #   dse.update_state({
-#       dse.ir_arch.arch.regs.df: df_value
+#       dse.lifter.arch.regs.df: df_value
 #   })
 # - Generic:
 dse.update_state_from_concrete()
diff --git a/example/symbol_exec/single_instr.py b/example/symbol_exec/single_instr.py
index 789252df..0aabbf8b 100644
--- a/example/symbol_exec/single_instr.py
+++ b/example/symbol_exec/single_instr.py
@@ -21,12 +21,12 @@ mdis.lines_wd = 1
 asm_block = mdis.dis_block(START_ADDR)
 
 # Translate ASM -> IR
-ira = machine.ira(mdis.loc_db)
-ircfg = ira.new_ircfg()
-ira.add_asmblock_to_ircfg(asm_block, ircfg)
+lifter_model_call = machine.lifter_model_call(mdis.loc_db)
+ircfg = lifter_model_call.new_ircfg()
+lifter_model_call.add_asmblock_to_ircfg(asm_block, ircfg)
 
 # Instantiate a Symbolic Execution engine with default value for registers
-symb = SymbolicExecutionEngine(ira)
+symb = SymbolicExecutionEngine(lifter_model_call)
 
 # Emulate one IR basic block
 ## Emulation of several basic blocks can be done through .emul_ir_blocks
@@ -39,6 +39,6 @@ print('Modified memory (should be empty):')
 symb.dump(ids=False)
 
 # Check final status
-eax, ebx = ira.arch.regs.EAX, ira.arch.regs.EBX
+eax, ebx = lifter_model_call.arch.regs.EAX, lifter_model_call.arch.regs.EBX
 assert symb.symbols[eax] == ebx
 assert eax in symb.symbols