diff options
| -rwxr-xr-x | example/disas_and_graph.py | 7 | ||||
| -rw-r--r-- | miasm/arch/ia32_sem.py | 12 | ||||
| -rw-r--r-- | miasm/core/asmbloc.py | 2 |
3 files changed, 11 insertions, 10 deletions
diff --git a/example/disas_and_graph.py b/example/disas_and_graph.py index 07030ea4..c7ec26aa 100755 --- a/example/disas_and_graph.py +++ b/example/disas_and_graph.py @@ -162,17 +162,18 @@ for (n,f), ads in dll_dyn_funcs.items(): def my_disasm_callback(ad): admode = opmode = u32 + kargs = {} if options.machine_options: if options.machine_options in ['u16', 'u32']: admode = opmode = options.machine_options + kargs = {"admode":admode, "opmode":admode} else: raise ValueError('bad machine options') all_bloc = asmbloc.dis_bloc_all(mnemo, in_str, ad, set(), symbol_pool=symbol_pool, - opmode = admode, - admode = admode, dontdis_retcall = options.dontdiscallret, - follow_call = options.followcall) + follow_call = options.followcall, + **kargs) g = asmbloc.bloc2graph(all_bloc) open('graph.txt', 'w').write(g) if mnemo == ia32_arch.x86_mn: diff --git a/miasm/arch/ia32_sem.py b/miasm/arch/ia32_sem.py index 114540f6..8738d264 100644 --- a/miasm/arch/ia32_sem.py +++ b/miasm/arch/ia32_sem.py @@ -1557,7 +1557,7 @@ def fst(info, a): return e def fstp(info, a): - e = fst(a) + e = fst(info, a) e+=float_pop(a) return e @@ -1567,25 +1567,25 @@ def fist(info, a): return e def fistp(info, a): - e = fist(a) + e = fist(info, a) e+=float_pop(a) return e def fild(info, a): #XXXXX src = ExprOp('int_%.2d_to_double'%a.get_size(), a) - return fld(src) + return fld(info, src) def fldz(info): - return fld(ExprOp('int_32_to_double', ExprInt(uint32(0)))) + return fld(info, ExprOp('int_32_to_double', ExprInt(uint32(0)))) def fld1(info): - return fld(ExprOp('int_32_to_double', ExprInt(uint32(1)))) + return fld(info, ExprOp('int_32_to_double', ExprInt(uint32(1)))) def fldl2e(info): x = struct.pack('d', 1/math.log(2)) x = struct.unpack('Q', x)[0] - return fld(ExprOp('mem_64_to_double', ExprInt(uint64(x)))) + return fld(info, ExprOp('mem_64_to_double', ExprInt(uint64(x)))) def fadd(info, a, b = None): if b == None: diff --git a/miasm/core/asmbloc.py b/miasm/core/asmbloc.py index 46ea01fc..0de965a8 100644 --- a/miasm/core/asmbloc.py +++ b/miasm/core/asmbloc.py @@ -227,7 +227,7 @@ def dis_bloc(mnemo, pool_bin, cur_bloc, offset, job_done, symbol_pool, while True: lines_cpt+=1 if lines_wd !=None and lines_cpt>lines_wd: - log_asmbloc.warning( "lines watchdog reached at %X"%int(offset)) + #log_asmbloc.warning( "lines watchdog reached at %X"%int(offset)) offsets_to_dis = [] break |