Files
cea-sec-miasm/test/core/sembuilder.py
T

53 lines
1.0 KiB
Python

import inspect
from pdb import pm
from miasm2.core.sembuilder import SemBuilder
import miasm2.expression.expression as m2_expr
from miasm2.core.asmbloc import asm_label
# Test classes
class IR(object):
IRDst = m2_expr.ExprId("IRDst")
def get_next_instr(self, _):
return asm_label("NEXT")
def gen_label(self):
return asm_label("GEN")
# Test
sb = SemBuilder(m2_expr.__dict__)
@sb.parse
def test(Arg1, Arg2, Arg3):
"Test docstring"
Arg1 = Arg2
mem32[Arg1] = Arg2
mem32[Arg2] = Arg3 + i32(4) - mem32[Arg1]
Arg3 = Arg3 if Arg2 else i32(0)
tmpvar = 'myop'(i32(2))
Arg2 = ('myopsize%d' % Arg1.size)(tmpvar, Arg1)
if not Arg1:
Arg2 = Arg3
a = m2_expr.ExprId('A')
b = m2_expr.ExprId('B')
c = m2_expr.ExprId('C')
ir = IR()
instr = None
res = test(ir, instr, a, b, c)
print "[+] Returned:"
print res
print "[+] DocString:", test.__doc__
print "[+] Cur instr:"
for statement in res[0]:
print statement
print "[+] Blocks:"
for block in res[1]:
print block