def down(func):
'''Return all the functions that are called by the function ``func``.'''
def codeRefs(func):
resultData,resultCode = [],[]
for ea in iterate(func):
if len(database.down(ea)) == 0:
if database.type.is_code(ea) and _instruction.is_call(ea):
logging.warn('{:s}.down({:x}) : Discovered a dynamically resolved call that is unable to be resolved. : {:s}'.format(__name__, func.startEA, database.disasm(ea)))
#resultCode.append((ea, 0))
continue
resultData.extend( (ea,x) for x in database.dxdown(ea) )
resultCode.extend( (ea,x) for x in database.cxdown(ea) if func.startEA == x or not contains(func,x) )
return resultData,resultCode
fn = by(func)
return sorted(set(d for x,d in codeRefs(fn)[1]))
评论列表
文章目录