rule 1005 tools/finsig_thumb2.c typedef int (*sig_match_fn)(firmware *fw, iter_state_t *is, sig_rule_t *rule); rule 1018 tools/finsig_thumb2.c int init_disasm_sig_ref(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1020 tools/finsig_thumb2.c if(!rule->ref_name) { rule 1021 tools/finsig_thumb2.c printf("init_disasm_sig_ref: %s missing ref_name\n",rule->name); rule 1024 tools/finsig_thumb2.c uint32_t adr=get_saved_sig_val(rule->ref_name); rule 1026 tools/finsig_thumb2.c printf("init_disasm_sig_ref: %s missing %s\n",rule->name,rule->ref_name); rule 1030 tools/finsig_thumb2.c printf("init_disasm_sig_ref: %s bad address 0x%08x for %s\n",rule->name,adr,rule->ref_name); rule 1036 tools/finsig_thumb2.c int sig_match_near_str(firmware *fw, iter_state_t *is, sig_rule_t *rule); rule 1037 tools/finsig_thumb2.c uint32_t find_str_arg_call(firmware *fw, iter_state_t *is, sig_rule_t *rule); rule 1043 tools/finsig_thumb2.c int sig_match_str_r0_call(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1045 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1047 tools/finsig_thumb2.c printf("sig_match_str_r0_call: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 1062 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 1070 tools/finsig_thumb2.c int sig_match_reg_evp(firmware *fw, iter_state_t *is, __attribute__ ((unused))sig_rule_t *rule) rule 1099 tools/finsig_thumb2.c int sig_match_reg_evp_table(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1102 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); // note this string may appear more than once, assuming want first rule 1104 tools/finsig_thumb2.c printf("sig_match_reg_evp_table: failed to find %s\n",rule->ref_name); rule 1153 tools/finsig_thumb2.c int sig_match_reg_evp_alt2(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1157 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1159 tools/finsig_thumb2.c printf("sig_match_reg_evp_alt2: failed to find %s\n",rule->ref_name); rule 1195 tools/finsig_thumb2.c int sig_match_unreg_evp_table(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1197 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1199 tools/finsig_thumb2.c printf("sig_match_unreg_evp_table: failed to find %s\n",rule->ref_name); rule 1256 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1261 tools/finsig_thumb2.c int sig_match_evp_table_veneer(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1263 tools/finsig_thumb2.c uint32_t ref_adr = get_saved_sig_val(rule->ref_name); rule 1279 tools/finsig_thumb2.c add_func_name(fw,rule->name,cadr | is->thumb,NULL); rule 1290 tools/finsig_thumb2.c int sig_match_createtaskstrictly_alt(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1292 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1294 tools/finsig_thumb2.c printf("sig_match_createtaskstrictly_alt: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 1316 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 1324 tools/finsig_thumb2.c int sig_match_createtask_alt(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1327 tools/finsig_thumb2.c if(!get_saved_sig_val(rule->ref_name)) { rule 1331 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1350 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 1354 tools/finsig_thumb2.c int sig_match_get_nd_value(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1361 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1387 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,addr); rule 1390 tools/finsig_thumb2.c int sig_match_get_current_exp(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1392 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1411 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1414 tools/finsig_thumb2.c int sig_match_get_current_nd_value(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1420 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1441 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1444 tools/finsig_thumb2.c int sig_match_get_current_deltasv(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1446 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1467 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1471 tools/finsig_thumb2.c int sig_match_imager_active_callback(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1473 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1495 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,f1); rule 1497 tools/finsig_thumb2.c int sig_match_imager_active(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1499 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1514 tools/finsig_thumb2.c init_disasm_sig_ref(fw,is,rule); rule 1550 tools/finsig_thumb2.c int sig_match_screenlock_helper(firmware *fw, iter_state_t *is, sig_rule_t *rule) { rule 1551 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1571 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,init_adr); rule 1595 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 1598 tools/finsig_thumb2.c int sig_match_fclose_low(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1600 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1621 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1624 tools/finsig_thumb2.c int sig_match_screenunlock(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1626 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1646 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1650 tools/finsig_thumb2.c int sig_match_log_camera_event(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1652 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1673 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1677 tools/finsig_thumb2.c int sig_match_physw_misc(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1679 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1680 tools/finsig_thumb2.c osig* ostub2 = find_sig(fw->sv->stubs,rule->ref_name); rule 1766 tools/finsig_thumb2.c int sig_match_kbd_read_keys(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1768 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1790 tools/finsig_thumb2.c int sig_match_get_kbd_state(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1792 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1814 tools/finsig_thumb2.c int sig_match_get_dial_hw_position(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1816 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1851 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,fadr); rule 1854 tools/finsig_thumb2.c int sig_match_create_jumptable(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1856 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1874 tools/finsig_thumb2.c int sig_match_take_semaphore_strict(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1876 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 1937 tools/finsig_thumb2.c int sig_match_get_semaphore_value(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1939 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1941 tools/finsig_thumb2.c printf("sig_get_semaphore_value: failed to find ref %s\n",rule->ref_name); rule 1975 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 1978 tools/finsig_thumb2.c int sig_match_stat(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 1980 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 1982 tools/finsig_thumb2.c printf("sig_match_stat: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 1997 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2014 tools/finsig_thumb2.c int sig_match_open(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2016 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2022 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2026 tools/finsig_thumb2.c int sig_match_umalloc(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2028 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2041 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2045 tools/finsig_thumb2.c int sig_match_ufree(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2047 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2068 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2071 tools/finsig_thumb2.c int sig_match_deletefile_fut(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2073 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2075 tools/finsig_thumb2.c printf("sig_match_deletefile_fut: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 2102 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2107 tools/finsig_thumb2.c uint32_t find_call_near_str(firmware *fw, iter_state_t *is, sig_rule_t *rule); rule 2109 tools/finsig_thumb2.c int sig_match_closedir(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2111 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2113 tools/finsig_thumb2.c printf("sig_match_closedir: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 2123 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2127 tools/finsig_thumb2.c uint32_t call_adr = find_call_near_str(fw,is,rule); rule 2137 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2145 tools/finsig_thumb2.c int save_sig_match_call(firmware* fw, sig_rule_t *rule, uint32_t call_adr) rule 2149 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,fw->is)); rule 2152 tools/finsig_thumb2.c int sig_match_readfastdir(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2155 tools/finsig_thumb2.c str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2157 tools/finsig_thumb2.c printf("sig_match_readfastdir: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 2168 tools/finsig_thumb2.c int max_insns=rule->param&SIG_NEAR_OFFSET_MASK; rule 2178 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 2191 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 2197 tools/finsig_thumb2.c printf("sig_match_readfastdir: no match %s\n",rule->name); rule 2201 tools/finsig_thumb2.c int sig_match_strrchr(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2203 tools/finsig_thumb2.c uint32_t sig_adr=get_saved_sig_val(rule->name); rule 2206 tools/finsig_thumb2.c uint32_t call_adr = find_call_near_str(fw,is,rule); rule 2214 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 2221 tools/finsig_thumb2.c int sig_match_time(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2223 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2225 tools/finsig_thumb2.c printf("sig_match_time: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 2245 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2250 tools/finsig_thumb2.c int sig_match_strncpy(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2252 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2261 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2264 tools/finsig_thumb2.c int sig_match_strncmp(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2266 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2268 tools/finsig_thumb2.c printf("sig_match_strncmp: failed to find ref %s\n",rule->ref_name); rule 2280 tools/finsig_thumb2.c if(regs[1]==str_adr && regs[2] == strlen(rule->ref_name)) { rule 2281 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2288 tools/finsig_thumb2.c int sig_match_strtolx(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2290 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2324 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2328 tools/finsig_thumb2.c int sig_match_exec_evp(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2330 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2332 tools/finsig_thumb2.c printf("sig_match_exec_evp: failed to find ref %s\n",rule->ref_name); rule 2351 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2358 tools/finsig_thumb2.c int sig_match_fgets_fut(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2360 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2378 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2381 tools/finsig_thumb2.c int sig_match_log(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2383 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2398 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2402 tools/finsig_thumb2.c int sig_match_pow_dry_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2407 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2430 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2434 tools/finsig_thumb2.c int sig_match_pow_dry_gt_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2439 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2464 tools/finsig_thumb2.c init_disasm_sig_ref(fw,is,rule); rule 2495 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2498 tools/finsig_thumb2.c int sig_match_sqrt(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2500 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2527 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2529 tools/finsig_thumb2.c int sig_match_get_drive_cluster_size(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2531 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2558 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2563 tools/finsig_thumb2.c int sig_match_mktime_ext(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2565 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2567 tools/finsig_thumb2.c printf("sig_match_mktime_ext: failed to find ref %s\n",rule->ref_name); rule 2614 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2620 tools/finsig_thumb2.c int sig_match_rec2pb(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2622 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2624 tools/finsig_thumb2.c printf("sig_match_mktime_ext: failed to find ref %s\n",rule->ref_name); rule 2660 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2670 tools/finsig_thumb2.c int sig_match_get_parameter_data(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2672 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2690 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2696 tools/finsig_thumb2.c int sig_match_prepdir_x(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2698 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2716 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2722 tools/finsig_thumb2.c int sig_match_prepdir_1(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2724 tools/finsig_thumb2.c uint32_t call_adr = find_call_near_str(fw,is,rule); rule 2731 tools/finsig_thumb2.c rule->param = SIG_NEAR_BEFORE(20,5); rule 2732 tools/finsig_thumb2.c call_adr = find_call_near_str(fw,is,rule); rule 2738 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2742 tools/finsig_thumb2.c rule->param = SIG_NEAR_BEFORE(7,2); rule 2743 tools/finsig_thumb2.c call_adr = find_call_near_str(fw,is,rule); rule 2747 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 2750 tools/finsig_thumb2.c int sig_match_prepdir_0(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2752 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2785 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 2787 tools/finsig_thumb2.c int sig_match_mkdir(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2789 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2800 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2803 tools/finsig_thumb2.c init_disasm_sig_ref(fw,is,rule); rule 2815 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2818 tools/finsig_thumb2.c int sig_match_add_ptp_handler(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2820 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2822 tools/finsig_thumb2.c printf("sig_match_add_ptp_handler: failed to find ref %s\n",rule->ref_name); rule 2848 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2852 tools/finsig_thumb2.c int sig_match_qsort(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2854 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 2881 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2891 tools/finsig_thumb2.c int sig_match_deletedirectory_fut(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2893 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2895 tools/finsig_thumb2.c printf("sig_match_deletedirectory_fut: failed to find ref %s\n",rule->ref_name); rule 2933 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2947 tools/finsig_thumb2.c int sig_match_set_control_event(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2949 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2975 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 2980 tools/finsig_thumb2.c int sig_match_displaybusyonscreen_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 2985 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 2987 tools/finsig_thumb2.c printf("sig_match_displaybusyonscreen: failed to find ref %s\n",rule->ref_name); rule 3008 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3013 tools/finsig_thumb2.c int sig_match_undisplaybusyonscreen_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3018 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3020 tools/finsig_thumb2.c printf("sig_match_undisplaybusyonscreen: failed to find ref %s\n",rule->ref_name); rule 3038 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3043 tools/finsig_thumb2.c int sig_match_try_take_sem_dry_gt_57(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3045 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3057 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3063 tools/finsig_thumb2.c int sig_match_wait_all_eventflag_strict(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3065 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3083 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3088 tools/finsig_thumb2.c int sig_match_get_num_posted_messages(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3090 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3102 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3105 tools/finsig_thumb2.c int sig_match_set_hp_timer_after_now(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3107 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3109 tools/finsig_thumb2.c printf("sig_match_set_hp_timer_after_now: failed to find ref %s\n",rule->ref_name); rule 3132 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3143 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3147 tools/finsig_thumb2.c int sig_match_transfer_src_overlay(firmware *fw, iter_state_t *is, sig_rule_t *rule) { rule 3148 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3195 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,fadr); rule 3199 tools/finsig_thumb2.c int sig_match_exmem_vars(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3202 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3251 tools/finsig_thumb2.c int sig_match_zicokick_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3253 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3255 tools/finsig_thumb2.c printf("sig_match_zicokick_52: failed to find ref %s\n",rule->ref_name); rule 3261 tools/finsig_thumb2.c if(!fw_search_insn(fw,is,search_disasm_str_ref,0,rule->ref_name,(uint32_t)is->adr+SEARCH_NEAR_REF_RANGE)) { rule 3262 tools/finsig_thumb2.c printf("sig_match_zicokick_52: failed to find insn ref %s\n",rule->ref_name); rule 3282 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 3287 tools/finsig_thumb2.c int sig_match_zicokick_gt52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3289 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3291 tools/finsig_thumb2.c printf("sig_match_zicokick_gt52: failed to find ref %s\n",rule->ref_name); rule 3297 tools/finsig_thumb2.c if(!fw_search_insn(fw,is,search_disasm_str_ref,0,rule->ref_name,(uint32_t)is->adr+SEARCH_NEAR_REF_RANGE)) { rule 3298 tools/finsig_thumb2.c printf("sig_match_zicokick_gt52: failed to find insn ref %s\n",rule->ref_name); rule 3316 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,(uint32_t)(fw->is->insn->address) | is->thumb); rule 3323 tools/finsig_thumb2.c int sig_match_zicokick_copy(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3325 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3343 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3346 tools/finsig_thumb2.c int sig_match_zicokick_values(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3348 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3439 tools/finsig_thumb2.c int sig_match_init_ex_drivers(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3441 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3470 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,b_tgt); rule 3480 tools/finsig_thumb2.c int sig_match_omar_init(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3482 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3531 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,fadr); rule 3534 tools/finsig_thumb2.c int sig_match_init_error_handlers(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3536 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3547 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3550 tools/finsig_thumb2.c int sig_match_default_assert_handler(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3552 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3565 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,regs[0]); rule 3568 tools/finsig_thumb2.c int sig_match_default_exception_handler(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3570 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3583 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,regs[0]); rule 3586 tools/finsig_thumb2.c int sig_match_default_panic_handler(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3588 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3601 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,regs[0]); rule 3604 tools/finsig_thumb2.c int sig_match_get_task_properties(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3606 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3619 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3625 tools/finsig_thumb2.c int sig_match_enable_hdmi_power(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3627 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3647 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3650 tools/finsig_thumb2.c int sig_match_disable_hdmi_power(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3652 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3678 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3681 tools/finsig_thumb2.c int sig_match_levent_table(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3683 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3719 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 3722 tools/finsig_thumb2.c int sig_match_flash_param_table(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3724 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3775 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 3778 tools/finsig_thumb2.c int sig_match_jpeg_count_str(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3780 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3782 tools/finsig_thumb2.c printf("sig_match_jpeg_count_str: failed to find ref %s\n",rule->ref_name); rule 3811 tools/finsig_thumb2.c save_misc_val(rule->name,regs[0],0,(uint32_t)is->insn->address); rule 3818 tools/finsig_thumb2.c int sig_match_misc_flag_named(__attribute__ ((unused))firmware *fw, __attribute__ ((unused))iter_state_t *is, sig_rule_t *rule) rule 3820 tools/finsig_thumb2.c uint32_t ref=get_saved_sig_val(rule->ref_name); rule 3821 tools/finsig_thumb2.c save_misc_val(rule->name,(ref)?1:0,0,ref); rule 3825 tools/finsig_thumb2.c int sig_match_dry_memset(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3827 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3840 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3843 tools/finsig_thumb2.c int sig_match_dry_memzero(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3845 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3858 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3863 tools/finsig_thumb2.c int sig_match_dry_memzero(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3865 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3890 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 3894 tools/finsig_thumb2.c int sig_match_dry_memcpy_bytes(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3896 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3916 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3920 tools/finsig_thumb2.c int sig_match_cam_has_iris_diaphragm(__attribute__ ((unused))firmware *fw, __attribute__ ((unused))iter_state_t *is, sig_rule_t *rule) rule 3923 tools/finsig_thumb2.c uint32_t ref=0;get_saved_sig_val(rule->ref_name); rule 3928 tools/finsig_thumb2.c ref=get_saved_sig_val(rule->ref_name); rule 3931 tools/finsig_thumb2.c save_misc_val(rule->name,v,0,ref); rule 3935 tools/finsig_thumb2.c int sig_match_cam_uncached_bit(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3937 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 3945 tools/finsig_thumb2.c save_misc_val(rule->name,is->insn->detail->arm.operands[2].imm,0,(uint32_t)is->insn->address); rule 3951 tools/finsig_thumb2.c int sig_match_umalloc_strictly(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3953 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 3955 tools/finsig_thumb2.c printf("sig_umalloc_strictly: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 3987 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 3990 tools/finsig_thumb2.c int sig_match_dcache_clean_flush_and_disable(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 3992 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4003 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 4006 tools/finsig_thumb2.c int sig_match_get_rom_id(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4008 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4042 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 4045 tools/finsig_thumb2.c int sig_match_dcache_flush_and_enable(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4047 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4072 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 4076 tools/finsig_thumb2.c int sig_match_physw_event_table(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4078 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4095 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 4098 tools/finsig_thumb2.c int sig_match_uiprop_count(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4100 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4120 tools/finsig_thumb2.c save_misc_val(rule->name,is->insn->detail->arm.operands[1].imm,0,(uint32_t)is->insn->address); rule 4124 tools/finsig_thumb2.c int sig_match_get_canon_mode_list(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4126 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); rule 4128 tools/finsig_thumb2.c printf("sig_match_get_canon_mode_list: failed to find ref %s\n",rule->ref_name); rule 4211 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,adr); rule 4214 tools/finsig_thumb2.c int sig_match_zoom_busy(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4216 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4250 tools/finsig_thumb2.c save_misc_val(rule->name,base,is->insn->detail->arm.operands[1].mem.disp,(uint32_t)is->insn->address); rule 4254 tools/finsig_thumb2.c int sig_match_focus_busy(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4256 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4301 tools/finsig_thumb2.c save_misc_val(rule->name,base,is->insn->detail->arm.operands[1].mem.disp,(uint32_t)is->insn->address); rule 4304 tools/finsig_thumb2.c int sig_match_aram_size(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4306 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4323 tools/finsig_thumb2.c save_misc_val(rule->name,val,0,(uint32_t)is->insn->address); rule 4327 tools/finsig_thumb2.c int sig_match_aram_size_gt58(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4329 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4345 tools/finsig_thumb2.c init_disasm_sig_ref(fw,is,rule); // reset to start rule 4355 tools/finsig_thumb2.c save_misc_val(rule->name,val,0,(uint32_t)is->insn->address); rule 4359 tools/finsig_thumb2.c int sig_match_aram_start(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4361 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4385 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 4389 tools/finsig_thumb2.c int sig_match_aram_start2(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4394 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4419 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 4423 tools/finsig_thumb2.c int sig_match_icache_flush_range(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4425 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4441 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,get_branch_call_insn_target(fw,is)); rule 4444 tools/finsig_thumb2.c int sig_match__nrflag(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4446 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4498 tools/finsig_thumb2.c save_misc_val(rule->name,adr,disp,fadr); rule 4505 tools/finsig_thumb2.c int sig_match_var_struct_get(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4507 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4525 tools/finsig_thumb2.c save_misc_val(rule->name,desc.adr_adj,desc.off,fadr); rule 4533 tools/finsig_thumb2.c int sig_match_ui_mem_func_ptr(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4535 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4558 tools/finsig_thumb2.c save_misc_val(rule->name,desc.adr_adj,desc.off,fadr); rule 4563 tools/finsig_thumb2.c int sig_match_func_ptr_val(firmware *fw, __attribute__ ((unused))iter_state_t *is, sig_rule_t *rule) rule 4565 tools/finsig_thumb2.c uint32_t adr = get_misc_val_value(rule->ref_name); rule 4573 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,*vp); rule 4577 tools/finsig_thumb2.c int sig_match_av_over_sem(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4584 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4600 tools/finsig_thumb2.c save_misc_val(rule->name,desc.adr_adj,desc.off,(uint32_t)is->insn->address); rule 4604 tools/finsig_thumb2.c int sig_match_canon_menu_active(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4606 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4622 tools/finsig_thumb2.c save_misc_val(rule->name,desc.adr_adj,desc.off,(uint32_t)is->insn->address); rule 4626 tools/finsig_thumb2.c int sig_match_file_counter_init(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4628 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4662 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,fadr); rule 4664 tools/finsig_thumb2.c int sig_match_file_counter_var(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4666 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4682 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,(uint32_t)is->insn->address); rule 4686 tools/finsig_thumb2.c int sig_match_palette_vars(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4688 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4735 tools/finsig_thumb2.c save_misc_val(rule->name,pal_base,0,(uint32_t)is->insn->address); rule 4780 tools/finsig_thumb2.c int sig_match_live_free_cluster_count(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4782 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4835 tools/finsig_thumb2.c save_misc_val(rule->name,base,is->insn->detail->arm.operands[2].mem.disp + 4,(uint32_t)is->insn->address); rule 4840 tools/finsig_thumb2.c int sig_match_debug_logging_ptr(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4842 tools/finsig_thumb2.c uint32_t call_adr = find_str_arg_call(fw,is,rule); rule 4870 tools/finsig_thumb2.c save_misc_val(rule->name,adr + disp,disp,(uint32_t)fw->is->insn->address); rule 4880 tools/finsig_thumb2.c int sig_match_debug_logging_flag(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4882 tools/finsig_thumb2.c if(!find_str_arg_call(fw,is,rule)) { rule 4921 tools/finsig_thumb2.c save_misc_val(rule->name,adr + disp,disp,ref_adr); rule 4924 tools/finsig_thumb2.c int sig_match_mzrm_sendmsg_ret_adr(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4926 tools/finsig_thumb2.c if(!find_str_arg_call(fw,is,rule)) { rule 4935 tools/finsig_thumb2.c save_misc_val(rule->name,(uint32_t)is->insn->address | is->thumb,0,0); rule 4939 tools/finsig_thumb2.c int sig_match_fw_yuv_layer_buf_52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4941 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4961 tools/finsig_thumb2.c save_misc_val(rule->name,regs[1],0,(uint32_t)fw->is->insn->address); // fw is has backtracked address rule 4965 tools/finsig_thumb2.c int sig_match_fw_yuv_layer_buf_gt52(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4967 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 4984 tools/finsig_thumb2.c save_misc_val(rule->name,regs[1],0,(uint32_t)fw->is->insn->address); // fw is has backtracked address rule 4988 tools/finsig_thumb2.c int sig_match_rom_ptr_get(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 4990 tools/finsig_thumb2.c if(!init_disasm_sig_ref(fw,is,rule)) { rule 5016 tools/finsig_thumb2.c save_misc_val(rule->name,adr,0,fadr); rule 5023 tools/finsig_thumb2.c uint32_t find_call_near_str(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5026 tools/finsig_thumb2.c if(rule->param & SIG_NEAR_INDIRECT) { rule 5027 tools/finsig_thumb2.c str_adr = find_str_bytes(fw,rule->ref_name); // indirect string could be in data area rule 5029 tools/finsig_thumb2.c str_adr = find_str_bytes_main_fw(fw,rule->ref_name); // direct string must be near actual code rule 5032 tools/finsig_thumb2.c printf("find_call_near_str: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 5038 tools/finsig_thumb2.c if(rule->param & SIG_NEAR_INDIRECT) { rule 5042 tools/finsig_thumb2.c printf("find_call_near_str: %s failed to find indirect ref %s\n",rule->name,rule->ref_name); rule 5048 tools/finsig_thumb2.c if(rule->param & SIG_NEAR_JMP_SUB) { rule 5054 tools/finsig_thumb2.c int max_insns=rule->param&SIG_NEAR_OFFSET_MASK; rule 5055 tools/finsig_thumb2.c int n=(rule->param&SIG_NEAR_COUNT_MASK)>>SIG_NEAR_COUNT_SHIFT; rule 5061 tools/finsig_thumb2.c if(rule->param & SIG_NEAR_REV) { rule 5079 tools/finsig_thumb2.c printf("find_call_near_str: no match %s\n",rule->name); rule 5084 tools/finsig_thumb2.c int sig_match_near_str(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5086 tools/finsig_thumb2.c if (!get_saved_sig_val(rule->name)) rule 5088 tools/finsig_thumb2.c uint32_t call_adr = find_call_near_str(fw,is,rule); rule 5090 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 5101 tools/finsig_thumb2.c uint32_t find_str_arg_call(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5103 tools/finsig_thumb2.c arm_reg reg = ARM_REG_R0 + (rule->param & SIG_STRCALL_ARG_MASK); rule 5104 tools/finsig_thumb2.c int match_type = (rule->param & SIG_STRCALL_TYPE_MASK); rule 5113 tools/finsig_thumb2.c printf("find_str_arg_call: %s invalid match type %d\n",rule->name,match_type); rule 5117 tools/finsig_thumb2.c uint32_t str_adr = find_str_bytes_main_fw(fw,rule->ref_name); // direct string must be near actual code rule 5119 tools/finsig_thumb2.c printf("find_str_arg_call: %s failed to find ref %s\n",rule->name,rule->ref_name); rule 5129 tools/finsig_thumb2.c str_adr = find_next_str_bytes_main_fw(fw,rule->ref_name, str_adr+strlen(rule->ref_name)); rule 5131 tools/finsig_thumb2.c printf("find_str_arg_call: no match %s r%d\n",rule->name,reg-ARM_REG_R0); rule 5135 tools/finsig_thumb2.c int sig_match_str_arg_call(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5137 tools/finsig_thumb2.c uint32_t call_adr = find_str_arg_call(fw,is,rule); rule 5139 tools/finsig_thumb2.c return save_sig_match_call(fw, rule, call_adr); rule 5144 tools/finsig_thumb2.c int sig_match_prop_string(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5146 tools/finsig_thumb2.c uint32_t call_adr = find_call_near_str(fw, is, rule); rule 5177 tools/finsig_thumb2.c add_prop_hit(rule->name,(int)regs[myreg]); rule 5216 tools/finsig_thumb2.c int sig_match_named_last(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5218 tools/finsig_thumb2.c uint32_t ref_adr = get_saved_sig_val(rule->ref_name); rule 5219 tools/finsig_thumb2.c int min = (rule->param&SIG_NAMED_LAST_MIN_MASK)>>SIG_NAMED_LAST_MIN_SHIFT; rule 5220 tools/finsig_thumb2.c int max = (rule->param&SIG_NAMED_LAST_MAX_MASK); rule 5222 tools/finsig_thumb2.c printf("sig_match_named_last: %s missing %s\n",rule->name,rule->ref_name); rule 5227 tools/finsig_thumb2.c printf("sig_match_named_last: immediate return %s\n",rule->name); rule 5232 tools/finsig_thumb2.c return save_sig_with_j(fw,rule->name,fadr); rule 5278 tools/finsig_thumb2.c int sig_match_named(firmware *fw, iter_state_t *is, sig_rule_t *rule) rule 5280 tools/finsig_thumb2.c uint32_t ref_adr = get_saved_sig_val(rule->ref_name); rule 5282 tools/finsig_thumb2.c printf("sig_match_named: missing %s\n",rule->ref_name); rule 5285 tools/finsig_thumb2.c uint32_t sig_type = rule->param & SIG_NAMED_TYPE_MASK; rule 5286 tools/finsig_thumb2.c uint32_t sig_flags = rule->param & SIG_NAMED_FLAG_MASK; rule 5287 tools/finsig_thumb2.c uint32_t sig_nth = (rule->param & SIG_NAMED_NTH_MASK)>>SIG_NAMED_NTH_SHIFT; rule 5288 tools/finsig_thumb2.c uint32_t sig_nth_range = (rule->param & SIG_NAMED_NTH_RANGE_MASK)>>SIG_NAMED_NTH_RANGE_SHIFT; rule 5298 tools/finsig_thumb2.c return sig_match_named_save_sig(fw,rule->name,ref_adr,sig_flags); rule 5308 tools/finsig_thumb2.c printf("sig_match_named: %s invalid type %d\n",rule->ref_name,sig_type); rule 5315 tools/finsig_thumb2.c printf("sig_match_named: immediate return %s\n",rule->name); rule 5323 tools/finsig_thumb2.c printf("sig_match_named: disasm failed %s 0x%08x\n",rule->name,(uint32_t)is->insn->address); rule 5327 tools/finsig_thumb2.c return sig_match_named_save_sig(fw,rule->name,iter_state_adr(is),sig_flags); rule 5344 tools/finsig_thumb2.c return sig_match_named_save_sig(fw,rule->name,adr,sig_flags); rule 5346 tools/finsig_thumb2.c printf("sig_match_named: %s invalid branch target 0x%08x\n",rule->ref_name,adr); rule 5349 tools/finsig_thumb2.c printf("sig_match_named: %s branch not found 0x%08x\n",rule->ref_name,ref_adr); rule 5771 tools/finsig_thumb2.c int sig_rule_applies(firmware *fw, sig_rule_t *rule) rule 5774 tools/finsig_thumb2.c if((rule->dryos_min && fw->dryos_ver_full < rule->dryos_min) || (rule->dryos_max && fw->dryos_ver_full > rule->dryos_max)) { rule 5778 tools/finsig_thumb2.c if(!rule->flags) { rule 5782 tools/finsig_thumb2.c if((rule->flags & SIG_NO_D7) && (fw->arch_flags & FW_ARCH_FL_VMSA)) { rule 5786 tools/finsig_thumb2.c if((rule->flags & SIG_NO_D6) && !(fw->arch_flags & FW_ARCH_FL_VMSA)) { rule 5794 tools/finsig_thumb2.c sig_rule_t *rule=sig_rules; rule 5797 tools/finsig_thumb2.c while(rule->match_fn) { rule 5798 tools/finsig_thumb2.c if(!sig_rule_applies(fw,rule)) { rule 5799 tools/finsig_thumb2.c rule++; rule 5804 tools/finsig_thumb2.c rule->match_fn(fw,is,rule); rule 5806 tools/finsig_thumb2.c rule++;