miasm
Reverse engineering framework
|
Functions | |
def | emul_symb (ir_arch, ircfg, mdis, states_todo, states_done) |
Variables | |
machine = Machine("x86_32") | |
parser = OptionParser(usage="usage: %prog [options] file") | |
dest | |
metavar | |
help | |
default | |
options | |
args | |
loc_db = LocationDB() | |
translator_smt2 = Translator.to_language("smt2") | |
addr = int(options.address, 16) | |
cont = Container.from_stream(open(args[0], 'rb'), loc_db) | |
mdis = machine.dis_engine(cont.bin_stream, loc_db=loc_db) | |
ir_arch = machine.ir(mdis.loc_db) | |
ircfg = ir_arch.new_ircfg() | |
symbexec = SymbolicExecutionEngine(ir_arch) | |
asmcfg | |
argc_lbl = loc_db.get_name_location('argc') | |
argv_lbl = loc_db.get_name_location('argv') | |
ret_addr_lbl = loc_db.get_name_location('ret_addr') | |
init_lbl = loc_db.get_name_location('init') | |
argc_loc = ExprLoc(argc_lbl, 32) | |
argv_loc = ExprLoc(argv_lbl, 32) | |
ret_addr_loc = ExprLoc(ret_addr_lbl, 32) | |
ret_addr = ExprId("ret_addr", ret_addr_loc.size) | |
dictionary | fix_args |
block = asmcfg.loc_key_to_block(init_lbl) | |
irb = ircfg.blocks[init_lbl] | |
ids | |
blocks | |
states_todo = set() | |
states_done = set() | |
list | all_info = [] |
key | |
list | reqs = [] |
all_cases = set() | |
list | out |
list | conditions = [] |
all_ids = set() | |
expr_test | |
cond = translator_smt2.from_expr(ExprAssign(expr_test, value)) | |
cases | |
def solve_condition_stp.emul_symb | ( | ir_arch, | |
ircfg, | |||
mdis, | |||
states_todo, | |||
states_done | |||
) |
solve_condition_stp.addr = int(options.address, 16) |
solve_condition_stp.all_cases = set() |
solve_condition_stp.all_ids = set() |
list solve_condition_stp.all_info = [] |
solve_condition_stp.argc_lbl = loc_db.get_name_location('argc') |
solve_condition_stp.args |
solve_condition_stp.argv_lbl = loc_db.get_name_location('argv') |
solve_condition_stp.block = asmcfg.loc_key_to_block(init_lbl) |
solve_condition_stp.blocks |
solve_condition_stp.cases |
solve_condition_stp.cond = translator_smt2.from_expr(ExprAssign(expr_test, value)) |
list solve_condition_stp.conditions = [] |
solve_condition_stp.cont = Container.from_stream(open(args[0], 'rb'), loc_db) |
solve_condition_stp.default |
solve_condition_stp.dest |
solve_condition_stp.expr_test |
dictionary solve_condition_stp.fix_args |
solve_condition_stp.help |
solve_condition_stp.ids |
solve_condition_stp.init_lbl = loc_db.get_name_location('init') |
solve_condition_stp.ir_arch = machine.ir(mdis.loc_db) |
solve_condition_stp.irb = ircfg.blocks[init_lbl] |
solve_condition_stp.ircfg = ir_arch.new_ircfg() |
solve_condition_stp.key |
solve_condition_stp.loc_db = LocationDB() |
solve_condition_stp.machine = Machine("x86_32") |
solve_condition_stp.metavar |
solve_condition_stp.options |
list solve_condition_stp.out |
solve_condition_stp.parser = OptionParser(usage="usage: %prog [options] file") |
list solve_condition_stp.reqs = [] |
solve_condition_stp.ret_addr = ExprId("ret_addr", ret_addr_loc.size) |
solve_condition_stp.ret_addr_lbl = loc_db.get_name_location('ret_addr') |
solve_condition_stp.ret_addr_loc = ExprLoc(ret_addr_lbl, 32) |
solve_condition_stp.states_done = set() |
solve_condition_stp.states_todo = set() |
solve_condition_stp.symbexec = SymbolicExecutionEngine(ir_arch) |
solve_condition_stp.translator_smt2 = Translator.to_language("smt2") |