#自动查找函数头并尽可能的识别为函数
def make_function(opcodes, align=1):
    start_ea = ida_ida.inf_get_min_ea()
    while (start_ea >= 0):
        procea = idc.find_binary(start_ea, SEARCH_DOWN, opcodes)
        if (procea == idaapi.BADADDR):
            break

        start_ea = procea + 1
        if (procea % 2) == align:
            flags = ida_bytes.get_flags(procea-align)
            if ida_bytes.is_unknown(flags):
                ida_auto.auto_make_proc(procea-align)
                msg("%s: %X\n" % (opcodes, procea-align))

            func = ida_funcs.get_func(procea)
            if func != None:
                start_ea += ida_funcs.calc_func_size(func)

make_function("07 21 00")
make_function("07 61 00")
make_function("07 61 10")
make_function("07 e1 00")
make_function("07 e1 10")
make_function("07 e1 f3")
make_function("07 e1 ff")
make_function("07 e1 70")

make_function("80 07 e1 10", 0)
make_function("8c 07 61 10", 0)
make_function("84 07 61 00", 0)

转载请注明转自: 听风 , 本文固定链接: IDA Scripts