diff options
| author | serpilliere <devnull@localhost> | 2014-06-03 10:18:48 +0200 |
|---|---|---|
| committer | serpilliere <devnull@localhost> | 2014-06-03 10:18:48 +0200 |
| commit | a183e1ebd525453710306695daa8c410fd0cb2af (patch) | |
| tree | cd99281474ea3999ccc6e5399c2cb95349981cfb /example/expression/manip_expression6.py | |
| parent | cecdf0da2ed0221c203af9157add30e2bff7dd8c (diff) | |
| download | miasm-a183e1ebd525453710306695daa8c410fd0cb2af.tar.gz miasm-a183e1ebd525453710306695daa8c410fd0cb2af.zip | |
Send miasm v1 to hell
Diffstat (limited to 'example/expression/manip_expression6.py')
| -rw-r--r-- | example/expression/manip_expression6.py | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/example/expression/manip_expression6.py b/example/expression/manip_expression6.py deleted file mode 100644 index 7e32da4b..00000000 --- a/example/expression/manip_expression6.py +++ /dev/null @@ -1,138 +0,0 @@ -from miasm.expression.expression import * -from miasm.expression.expression_helper import * -import os - -filename = os.environ.get('PYTHONSTARTUP') -if filename and os.path.isfile(filename): - execfile(filename) - -a = ExprId('a') -b = ExprId('b') -c = ExprId('c') -d = ExprId('d') - - -x = ExprMem(a+b+ExprInt32(0x42)) - -def replace_expr(e): - #print 'visit', e - dct = {c+ExprInt32(0x42):d, - a+b:c,} - if e in dct: - return dct[e] - return e - - -print x -y = x.visit(replace_expr) -print y -print x.copy() -print y.copy() -print y == y.copy() -print repr(y), repr(y.copy()) - - -z = ExprCompose([(a[5:9], 0, 8), (b, 8, 24), (x, 24, 32)]) -print z -print z.copy() -print z[:31].copy().visit(replace_expr) - -print 'replace' -print x.replace_expr({c+ExprInt32(0x42):d, - a+b:c,}) -print z.replace_expr({c+ExprInt32(0x42):d, - a+b:c,}) - - -u = z.copy() -print u -u.args[-1][0].arg.args[1].arg = uint32(0x45) -print u -print z -print u == z - -to_test = [(ExprInt32(1)-ExprInt32(1), ExprInt32(0)), - ((ExprInt32(5)+c+a+b-a+ExprInt32(1)-ExprInt32(5)),b+c+ExprInt32(1)), - (a+b+c-a-b-c+a,a), - (a+a+b+c-(a+(b+c)),a), - (c^b^a^c^b,a), - (a^ExprInt32(0),a), - ((a+b)-b,a), - (-(ExprInt32(0)-((a+b)-b)),a), - - (ExprOp('<<<', a, ExprInt32(32)),a), - (ExprOp('>>>', a, ExprInt32(32)),a), - (ExprOp('>>>', a, ExprInt32(0)),a), - (ExprOp('<<', a, ExprInt32(0)),a), - - (ExprOp('<<<', a, ExprOp('<<<', b, c)), - ExprOp('<<<', a, ExprOp('<<<', b, c))), - (ExprOp('<<<', ExprOp('<<<', a, b), c), - ExprOp('<<<', ExprOp('<<<', a, b), c)), - (ExprOp('<<<', ExprOp('>>>', a, b), c), - ExprOp('<<<', ExprOp('>>>', a, b), c)), - (ExprOp('>>>', ExprOp('<<<', a, b), c), - ExprOp('>>>', ExprOp('<<<', a, b), c)), - (ExprOp('>>>', ExprOp('<<<', a, b), b), - ExprOp('>>>', ExprOp('<<<', a, b), b)), - - - (ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)), - ExprOp('<<<', a, ExprInt32(8))), - - (ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)) ^ ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)), - ExprInt32(0)), - (ExprOp(">>", (a & ExprInt32(0xF)), ExprInt32(0x15)), - ExprInt32(0)), - (ExprOp("==", ExprInt32(12), ExprInt32(10)), ExprInt32(0)), - (ExprOp("==", ExprInt32(12), ExprInt32(12)), ExprInt32(1)), - (ExprOp("==", a|ExprInt32(12), ExprInt32(0)),ExprInt32(0)), - (ExprOp("==", a|ExprInt32(12), ExprInt32(14)), - ExprOp("==", a|ExprInt32(12), ExprInt32(14))), - (ExprOp("parity", ExprInt32(0xf)), ExprInt32(1)), - (ExprOp("parity", ExprInt32(0xe)), ExprInt32(0)), - (ExprInt32(0x4142)[:32],ExprInt32(0x4142)), - (ExprInt32(0x4142)[:8],ExprInt8(0x42)), - (ExprInt32(0x4142)[8:16],ExprInt8(0x41)), - (a[:32], a), - (a[:8][:8],a[:8]), - (a[:16][:8],a[:8]), - (a[8:16][:8],a[8:16]), - (a[8:32][:8],a[8:16]), - (a[:16][8:16],a[8:16]), - (ExprCompose([(a, 0, 32)]),a), - (ExprCompose([(a[:16], 0, 16)]), a[:16]), - (ExprCompose([(a[:16], 0, 16), (a, 16, 32)]), - ExprCompose([(a[:16], 0, 16), (a, 16, 32)]),), - (ExprCompose([(a[:16], 0, 16), (a[16:32], 16, 32)]), a), - - (ExprMem(a)[:32], ExprMem(a)), - (ExprMem(a)[:16], ExprMem(a, size=16)), - - (ExprCond(ExprInt32(1), a, b), a), - (ExprCond(ExprInt32(0), b, a), a), - - (ExprInt32(0x80000000)[31:32], ExprInt32(1)), - (ExprCompose([(ExprInt16(0x1337)[:8], 0, 8),(ExprInt16(0x1337)[8:16], 8, 16)]), - ExprInt16(0x1337)), - - (ExprCompose([(ExprInt32(0x1337beef)[8:16], 8, 16), - (ExprInt32(0x1337beef)[:8], 0, 8), - (ExprInt32(0x1337beef)[16:32], 16, 32)]), - ExprInt32(0x1337BEEF)), - - - ] - - -for e, e_check in to_test[:]: - # - print "#"*80 - e_check = expr_simp(e_check) - print "#"*80 - print str(e), str(e_check) - e_new = expr_simp(e) - print "orig", str(e), "new", str(e_new), "check", str(e_check) - rez = e_new == e_check - if not rez: - fdsfds |