def scan_function(self, ea, offset, arg_index):
# Function for recursive search structure's members
if Helper.is_imported_ea(ea):
return
if (ea, arg_index, self.origin + offset) in scanned_functions:
return
try:
scanned_functions.add((ea, arg_index, self.origin + offset))
new_function = idaapi.decompile(ea)
if new_function:
print "[Info] Scanning function {name} at 0x{ea:08X}, origin: 0x{origin:04X}".format(
name=idaapi.get_short_name(ea), ea=ea, origin=self.origin + offset
)
scanner = DeepSearchVisitor(new_function, self.origin + offset, arg_index)
scanner.apply_to(new_function.body, None)
self.candidates.extend(scanner.candidates)
except idaapi.DecompilationFailure:
print "[ERROR] Ida failed to decompile function at 0x{0:08X}".format(ea)
评论列表
文章目录