about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2014-10-08 17:59:45 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2014-10-08 17:59:45 +0200
commit2f4d1bf249f09b17c85f78bb9d2cbdec60b5be45 (patch)
tree4947690040f000b8ac582c9e76e8b084001f740d
parentfaae3a839c34c49cd26a0665c9e646f1a5127784 (diff)
downloadmiasm-2f4d1bf249f09b17c85f78bb9d2cbdec60b5be45.tar.gz
miasm-2f4d1bf249f09b17c85f78bb9d2cbdec60b5be45.zip
asmbloc: remove un needed mode in asm function
-rw-r--r--example/asm_arm.py2
-rw-r--r--example/asm_arm_sc.py2
-rw-r--r--example/asm_armt.py2
-rw-r--r--example/asm_box_x86_32.py2
-rw-r--r--example/asm_box_x86_32_enc.py2
-rw-r--r--example/asm_box_x86_32_mod.py2
-rw-r--r--example/asm_box_x86_32_mod_self.py2
-rw-r--r--example/asm_box_x86_32_repmod.py2
-rw-r--r--example/asm_box_x86_64.py2
-rw-r--r--example/asm_mips32.py33
-rw-r--r--example/asm_msp430_sc.py2
-rw-r--r--example/asm_x86.py2
-rw-r--r--miasm2/core/asmbloc.py15
13 files changed, 40 insertions, 30 deletions
diff --git a/example/asm_arm.py b/example/asm_arm.py
index a3e85cde..b891ba1a 100644
--- a/example/asm_arm.py
+++ b/example/asm_arm.py
@@ -73,7 +73,7 @@ print "symbols"
 print symbol_pool
 # dont erase from start to shell code padading
 resolved_b, patches = asmbloc.asm_resolve_final(
-    my_mn, 'arm', blocs[0], symbol_pool)
+    my_mn, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_arm_sc.py b/example/asm_arm_sc.py
index 3c96742d..71f2d716 100644
--- a/example/asm_arm_sc.py
+++ b/example/asm_arm_sc.py
@@ -54,7 +54,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_arm, "arm", blocs[0], symbol_pool)
+    mn_arm, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_armt.py b/example/asm_armt.py
index 432d4101..c95c4bac 100644
--- a/example/asm_armt.py
+++ b/example/asm_armt.py
@@ -68,7 +68,7 @@ print "symbols"
 print symbol_pool
 # dont erase from start to shell code padading
 resolved_b, patches = asmbloc.asm_resolve_final(
-    my_mn, 'armt', blocs[0], symbol_pool)
+    my_mn, blocs[0], symbol_pool)
 print patches
 
 
diff --git a/example/asm_box_x86_32.py b/example/asm_box_x86_32.py
index 2fa63c78..c11e645a 100644
--- a/example/asm_box_x86_32.py
+++ b/example/asm_box_x86_32.py
@@ -57,7 +57,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 32, blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_box_x86_32_enc.py b/example/asm_box_x86_32_enc.py
index 7f1ef7ec..b06fa1ea 100644
--- a/example/asm_box_x86_32_enc.py
+++ b/example/asm_box_x86_32_enc.py
@@ -87,7 +87,7 @@ print "symbols"
 print symbol_pool
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 32, blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 print patches
 
 ad_start = symbol_pool.getby_name_create("msgbox_encrypted_start").offset
diff --git a/example/asm_box_x86_32_mod.py b/example/asm_box_x86_32_mod.py
index f9f53f58..5f90fe9c 100644
--- a/example/asm_box_x86_32_mod.py
+++ b/example/asm_box_x86_32_mod.py
@@ -80,7 +80,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 32, blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_box_x86_32_mod_self.py b/example/asm_box_x86_32_mod_self.py
index 95898722..0efe4811 100644
--- a/example/asm_box_x86_32_mod_self.py
+++ b/example/asm_box_x86_32_mod_self.py
@@ -65,7 +65,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 32, blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_box_x86_32_repmod.py b/example/asm_box_x86_32_repmod.py
index f351fcfa..c46fedd5 100644
--- a/example/asm_box_x86_32_repmod.py
+++ b/example/asm_box_x86_32_repmod.py
@@ -94,7 +94,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 32, blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_box_x86_64.py b/example/asm_box_x86_64.py
index 3ae4bcb5..d48a1729 100644
--- a/example/asm_box_x86_64.py
+++ b/example/asm_box_x86_64.py
@@ -58,7 +58,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, 64, blocs[0], symbol_pool,
+    mn_x86, blocs[0], symbol_pool,
     max_offset=0xFFFFFFFFFFFFFFFF)
 print patches
 
diff --git a/example/asm_mips32.py b/example/asm_mips32.py
index 83e7a90b..aec57886 100644
--- a/example/asm_mips32.py
+++ b/example/asm_mips32.py
@@ -25,9 +25,10 @@ my_var_parser = parse_ast(my_ast_id2expr, my_ast_int2expr)
 base_expr.setParseAction(my_var_parser)
 
 
-st = StrPatchwork()
+st_l = StrPatchwork()
+st_b = StrPatchwork()
 
-blocs, symbol_pool = parse_asm.parse_txt(mn_mips32, "l", '''
+txt = '''
 main:
     ADDIU      A0, ZERO, 0x10
     ADDIU      A1, ZERO, 0
@@ -40,19 +41,29 @@ loop:
     MOVN       A1, ZERO, ZERO
     JR         RA
     ADDIU      A2, A2, 0x1
-''')
+'''
+
+blocs_b, symbol_pool_b = parse_asm.parse_txt(mn_mips32, "b", txt)
+blocs_l, symbol_pool_l = parse_asm.parse_txt(mn_mips32, "l", txt)
 
 # fix shellcode addr
-symbol_pool.set_offset(symbol_pool.getby_name("main"), 0)
+symbol_pool_b.set_offset(symbol_pool_b.getby_name("main"), 0)
+symbol_pool_l.set_offset(symbol_pool_l.getby_name("main"), 0)
 
-for b in blocs[0]:
+for b in blocs_b[0]:
     print b
 
-resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_mips32, 'l', blocs[0], symbol_pool)
-print patches
+resolved_b, patches_b = asmbloc.asm_resolve_final(
+    mn_mips32, blocs_b[0], symbol_pool_b)
+resolved_l, patches_l = asmbloc.asm_resolve_final(
+    mn_mips32, blocs_l[0], symbol_pool_l)
+print patches_b
+print patches_l
 
-for offset, raw in patches.items():
-    st[offset] = raw
+for offset, raw in patches_b.items():
+    st_b[offset] = raw
+for offset, raw in patches_l.items():
+    st_l[offset] = raw
 
-open('mips32_sc.bin', 'wb').write(str(st))
+open('mips32_sc_b.bin', 'wb').write(str(st_l))
+open('mips32_sc_l.bin', 'wb').write(str(st_l))
diff --git a/example/asm_msp430_sc.py b/example/asm_msp430_sc.py
index 5dee56fb..c0bae929 100644
--- a/example/asm_msp430_sc.py
+++ b/example/asm_msp430_sc.py
@@ -45,7 +45,7 @@ for b in blocs[0]:
     print b
 
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_msp430, None, blocs[0], symbol_pool)
+    mn_msp430, blocs[0], symbol_pool)
 print patches
 
 for offset, raw in patches.items():
diff --git a/example/asm_x86.py b/example/asm_x86.py
index b9f2cc5b..77fc61dc 100644
--- a/example/asm_x86.py
+++ b/example/asm_x86.py
@@ -79,7 +79,7 @@ mystr:
 symbol_pool.set_offset(symbol_pool.getby_name("main"), 0x0)
 s = StrPatchwork()
 resolved_b, patches = asmbloc.asm_resolve_final(
-    mn_x86, '32', blocs[0], symbol_pool)
+    mn_x86, blocs[0], symbol_pool)
 for offset, raw in patches.items():
     s[offset] = raw
 
diff --git a/miasm2/core/asmbloc.py b/miasm2/core/asmbloc.py
index ac778280..b80dd1e3 100644
--- a/miasm2/core/asmbloc.py
+++ b/miasm2/core/asmbloc.py
@@ -618,7 +618,7 @@ shape = "box"
     return out
 
 
-def conservative_asm(mnemo, mode, instr, symbols, conservative):
+def conservative_asm(mnemo, instr, symbols, conservative):
     """
     Asm instruction;
     Try to keep original instruction bytes if it exists
@@ -647,7 +647,7 @@ def fix_expr_val(e, symbols):
     return e
 
 
-def guess_blocs_size(mnemo, mode, blocs, symbols):
+def guess_blocs_size(mnemo, blocs, symbols):
     """
     Asm and compute max bloc length
     """
@@ -952,7 +952,7 @@ def calc_symbol_offset(symbol_pool):
             s_to_use.add(l)
 
 
-def asmbloc_final(mnemo, mode, blocs, symbol_pool, symb_reloc_off=None, conservative = False):
+def asmbloc_final(mnemo, blocs, symbol_pool, symb_reloc_off=None, conservative = False):
     log_asmbloc.info("asmbloc_final")
     if symb_reloc_off is None:
         symb_reloc_off = {}
@@ -1002,7 +1002,7 @@ def asmbloc_final(mnemo, mode, blocs, symbol_pool, symb_reloc_off=None, conserva
                 symbol_reloc_off = []
                 old_l = instr.l
                 c, candidates = conservative_asm(
-                    mnemo, mode, instr, symbol_reloc_off, conservative)
+                    mnemo, instr, symbol_reloc_off, conservative)
 
                 # print candidates
                 for i, e in enumerate(sav_a):
@@ -1050,19 +1050,18 @@ def asmbloc_final(mnemo, mode, blocs, symbol_pool, symb_reloc_off=None, conserva
         symb_reloc_off[a] = b
 
 
-def asm_resolve_final(mnemo, mode, blocs, symbol_pool, dont_erase=[],
+def asm_resolve_final(mnemo, blocs, symbol_pool, dont_erase=[],
                       max_offset=0xFFFFFFFF,
                       symb_reloc_off=None, constrain_pos=False):
     if symb_reloc_off is None:
         symb_reloc_off = {}
-    # asmbloc(mnemo, mode, blocs, symbol_pool)
-    guess_blocs_size(mnemo, mode, blocs, symbol_pool)
+    guess_blocs_size(mnemo, blocs, symbol_pool)
     bloc_g = group_blocs(blocs)
 
     resolved_b = resolve_symbol(bloc_g, symbol_pool, dont_erase=dont_erase,
                                 max_offset=max_offset)
 
-    asmbloc_final(mnemo, mode, resolved_b, symbol_pool, symb_reloc_off)
+    asmbloc_final(mnemo, resolved_b, symbol_pool, symb_reloc_off)
     written_bytes = {}
     patches = {}
     for b, t in resolved_b: