CHDK_DE Vorschauversion
Trunk Rev. 5663
|
#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <capstone.h>
#include "stubs_load.h"
#include "firmware_load_ng.h"
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
#define | MATCH_SIMPLE_FUNC_NONE 0x0 |
#define | MATCH_SIMPLE_FUNC_NULLSUB 0x1 |
#define | MATCH_SIMPLE_FUNC_IMM 0x2 |
#define | MATCH_SIMPLE_FUNC_ANY 0x3 |
Variablen | |
const insn_match_t | match_b [] |
const insn_match_t | match_bl [] |
const insn_match_t | match_b_bl [] |
const insn_match_t | match_b_bl_blximm [] |
const insn_match_t | match_bl_blximm [] |
const insn_match_t | match_bxlr [] |
const insn_match_t | match_ldr_pc [] |
#define MATCH_SIMPLE_FUNC_ANY 0x3 |
Definiert in Zeile 1583 der Datei firmware_load_ng.c.
#define MATCH_SIMPLE_FUNC_IMM 0x2 |
Definiert in Zeile 1580 der Datei firmware_load_ng.c.
#define MATCH_SIMPLE_FUNC_NONE 0x0 |
Definiert in Zeile 1576 der Datei firmware_load_ng.c.
#define MATCH_SIMPLE_FUNC_NULLSUB 0x1 |
Definiert in Zeile 1578 der Datei firmware_load_ng.c.
|
static |
uint32_t ADR2adr | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 729 der Datei firmware_load_ng.c.
Definiert in Zeile 274 der Datei firmware_load_ng.c.
Definiert in Zeile 289 der Datei firmware_load_ng.c.
adr_range_t* adr_get_range | ( | firmware * | fw, |
uint32_t | adr | ||
) |
Definiert in Zeile 245 der Datei firmware_load_ng.c.
Definiert in Zeile 259 der Datei firmware_load_ng.c.
void adr_hist_add | ( | adr_hist_t * | ah, |
uint32_t | adr | ||
) |
Definiert in Zeile 452 der Datei firmware_load_ng.c.
uint32_t adr_hist_get | ( | adr_hist_t * | ah, |
int | i | ||
) |
Definiert in Zeile 463 der Datei firmware_load_ng.c.
int adr_hist_index | ( | adr_hist_t * | ah, |
int | i | ||
) |
Definiert in Zeile 442 der Datei firmware_load_ng.c.
void adr_hist_reset | ( | adr_hist_t * | ah) |
Definiert in Zeile 433 der Datei firmware_load_ng.c.
Definiert in Zeile 351 der Datei firmware_load_ng.c.
Definiert in Zeile 345 der Datei firmware_load_ng.c.
const char* adr_range_desc_str | ( | adr_range_t * | r) |
Definiert in Zeile 323 der Datei firmware_load_ng.c.
const char* adr_range_type_str | ( | int | type) |
Definiert in Zeile 306 der Datei firmware_load_ng.c.
uint32_t ADRx2adr | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 705 der Datei firmware_load_ng.c.
uint32_t B_BL_BLXimm_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 818 der Datei firmware_load_ng.c.
uint32_t B_BL_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 808 der Datei firmware_load_ng.c.
uint32_t B_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 770 der Datei firmware_load_ng.c.
uint32_t BL_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 799 der Datei firmware_load_ng.c.
uint32_t BLXimm_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 789 der Datei firmware_load_ng.c.
uint32_t CBx_target | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 780 der Datei firmware_load_ng.c.
int check_simple_func | ( | firmware * | fw, |
uint32_t | adr, | ||
int | match_ftype, | ||
simple_func_desc_t * | info | ||
) |
Definiert in Zeile 1584 der Datei firmware_load_ng.c.
int disasm_iter | ( | __attribute__((unused)) firmware * | fw, |
iter_state_t * | is | ||
) |
Definiert in Zeile 994 der Datei firmware_load_ng.c.
void disasm_iter_free | ( | iter_state_t * | is) |
Definiert in Zeile 939 der Datei firmware_load_ng.c.
int disasm_iter_init | ( | __attribute__((unused)) firmware * | fw, |
iter_state_t * | is, | ||
uint32_t | adr | ||
) |
Definiert in Zeile 985 der Datei firmware_load_ng.c.
iter_state_t* disasm_iter_new | ( | firmware * | fw, |
uint32_t | adr | ||
) |
Definiert in Zeile 928 der Datei firmware_load_ng.c.
int disasm_iter_set | ( | firmware * | fw, |
iter_state_t * | is, | ||
uint32_t | adr | ||
) |
Definiert in Zeile 948 der Datei firmware_load_ng.c.
int do_blx_check | ( | firmware * | fw) |
Definiert in Zeile 2114 der Datei firmware_load_ng.c.
int find_and_get_var_ldr | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | max_search_insns, | ||
int | max_seq_insns, | ||
arm_reg | match_val_reg, | ||
var_ldr_desc_t * | result | ||
) |
int find_bytes_all | ( | firmware * | fw, |
const void * | bytes, | ||
size_t | len, | ||
uint32_t | adr, | ||
uint32_t * | result, | ||
int | max | ||
) |
Definiert in Zeile 174 der Datei firmware_load_ng.c.
void find_dryos_vers | ( | firmware * | fw) |
Definiert in Zeile 1978 der Datei firmware_load_ng.c.
void find_exception_vec | ( | firmware * | fw, |
iter_state_t * | is | ||
) |
Definiert in Zeile 2235 der Datei firmware_load_ng.c.
uint32_t find_last_call_from_func | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | min_insns, | ||
int | max_insns | ||
) |
Definiert in Zeile 1641 der Datei firmware_load_ng.c.
uint32_t find_next_bytes_range | ( | firmware * | fw, |
const void * | bytes, | ||
size_t | len, | ||
uint32_t | start_adr, | ||
uint32_t | max_adr | ||
) |
Definiert in Zeile 132 der Datei firmware_load_ng.c.
Definiert in Zeile 211 der Datei firmware_load_ng.c.
uint32_t find_next_str_bytes_range | ( | firmware * | fw, |
const char * | str, | ||
uint32_t | adr, | ||
uint32_t | max_adr | ||
) |
Definiert in Zeile 190 der Datei firmware_load_ng.c.
Definiert in Zeile 183 der Datei firmware_load_ng.c.
int find_Nth_str | ( | firmware * | fw, |
char * | str, | ||
int | N | ||
) |
Definiert in Zeile 99 der Datei firmware_load_ng.c.
int find_startup_copy | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | max_search, | ||
uint32_t * | src_start, | ||
uint32_t * | dst_start, | ||
uint32_t * | dst_end | ||
) |
Definiert in Zeile 2184 der Datei firmware_load_ng.c.
int find_str | ( | firmware * | fw, |
char * | str | ||
) |
Definiert in Zeile 123 der Datei firmware_load_ng.c.
Definiert in Zeile 219 der Datei firmware_load_ng.c.
Definiert in Zeile 197 der Datei firmware_load_ng.c.
Definiert in Zeile 401 der Datei firmware_load_ng.c.
Definiert in Zeile 369 der Datei firmware_load_ng.c.
|
static |
Definiert in Zeile 32 der Datei firmware_load_ng.c.
int firmware_init_capstone | ( | firmware * | fw) |
Definiert in Zeile 2159 der Datei firmware_load_ng.c.
void firmware_init_data_ranges | ( | firmware * | fw) |
highest known first copied ram code 0x01900000
Definiert in Zeile 2316 der Datei firmware_load_ng.c.
Definiert in Zeile 2030 der Datei firmware_load_ng.c.
void firmware_unload | ( | firmware * | fw) |
Definiert in Zeile 2452 der Datei firmware_load_ng.c.
void fw_add_adr_range | ( | firmware * | fw, |
uint32_t | start, | ||
uint32_t | end, | ||
uint32_t | src_start, | ||
int | type, | ||
int | flags | ||
) |
Definiert in Zeile 1939 der Datei firmware_load_ng.c.
int fw_disasm_iter | ( | firmware * | fw) |
Definiert in Zeile 1031 der Datei firmware_load_ng.c.
Definiert in Zeile 1038 der Datei firmware_load_ng.c.
Definiert in Zeile 1025 der Datei firmware_load_ng.c.
int fw_search_bytes | ( | firmware * | fw, |
search_bytes_fn | func | ||
) |
uint32_t fw_search_insn | ( | firmware * | fw, |
iter_state_t * | is, | ||
search_insn_fn | f, | ||
uint32_t | v1, | ||
void * | udata, | ||
uint32_t | adr_end | ||
) |
Definiert in Zeile 1072 der Datei firmware_load_ng.c.
Definiert in Zeile 407 der Datei firmware_load_ng.c.
uint32_t get_branch_call_insn_target | ( | firmware * | fw, |
iter_state_t * | is | ||
) |
Definiert in Zeile 1441 der Datei firmware_load_ng.c.
int get_call_const_args | ( | firmware * | fw, |
iter_state_t * | is_init, | ||
int | max_backtrack, | ||
uint32_t * | res | ||
) |
Definiert in Zeile 1265 der Datei firmware_load_ng.c.
uint32_t get_direct_jump_target | ( | firmware * | fw, |
iter_state_t * | is_init | ||
) |
Definiert in Zeile 1390 der Datei firmware_load_ng.c.
int get_TBx_PC_info | ( | firmware * | fw, |
iter_state_t * | is, | ||
tbx_info_t * | ti | ||
) |
Definiert in Zeile 831 der Datei firmware_load_ng.c.
int insn_match | ( | cs_insn * | insn, |
const insn_match_t * | match | ||
) |
int insn_match_any | ( | cs_insn * | insn, |
const insn_match_t * | match | ||
) |
Definiert in Zeile 1835 der Datei firmware_load_ng.c.
int insn_match_find_next | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | max_insns, | ||
const insn_match_t * | match | ||
) |
Definiert in Zeile 1848 der Datei firmware_load_ng.c.
int insn_match_find_next_seq | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | max_insns, | ||
const insn_match_t * | match | ||
) |
Definiert in Zeile 1895 der Datei firmware_load_ng.c.
int insn_match_find_nth | ( | firmware * | fw, |
iter_state_t * | is, | ||
int | max_insns, | ||
int | num_to_match, | ||
const insn_match_t * | match | ||
) |
Definiert in Zeile 1867 der Datei firmware_load_ng.c.
int insn_match_seq | ( | firmware * | fw, |
iter_state_t * | is, | ||
const insn_match_t * | match | ||
) |
Definiert in Zeile 1750 der Datei firmware_load_ng.c.
int isADD_PC | ( | cs_insn * | insn) |
Definiert in Zeile 534 der Datei firmware_load_ng.c.
int isADDW_PC | ( | cs_insn * | insn) |
Definiert in Zeile 522 der Datei firmware_load_ng.c.
int isADDx_imm | ( | cs_insn * | insn) |
Definiert in Zeile 638 der Datei firmware_load_ng.c.
int isADRx | ( | cs_insn * | insn) |
int isARM | ( | cs_insn * | insn) |
Definiert in Zeile 474 der Datei firmware_load_ng.c.
Definiert in Zeile 224 der Datei firmware_load_ng.c.
int isLDR_PC | ( | cs_insn * | insn) |
Definiert in Zeile 488 der Datei firmware_load_ng.c.
int isLDR_PC_PC | ( | cs_insn * | insn) |
Definiert in Zeile 501 der Datei firmware_load_ng.c.
int isPOP_LR | ( | cs_insn * | insn) |
Definiert in Zeile 606 der Datei firmware_load_ng.c.
int isPOP_PC | ( | cs_insn * | insn) |
Definiert in Zeile 622 der Datei firmware_load_ng.c.
int isPUSH_LR | ( | cs_insn * | insn) |
Definiert in Zeile 590 der Datei firmware_load_ng.c.
int isRETx | ( | cs_insn * | insn) |
Definiert in Zeile 556 der Datei firmware_load_ng.c.
int isSUB_PC | ( | cs_insn * | insn) |
Definiert in Zeile 545 der Datei firmware_load_ng.c.
int isSUBW_PC | ( | cs_insn * | insn) |
Definiert in Zeile 510 der Datei firmware_load_ng.c.
int isSUBx_imm | ( | cs_insn * | insn) |
Definiert in Zeile 643 der Datei firmware_load_ng.c.
uint32_t LDR_PC2adr | ( | __attribute__((unused)) firmware * | fw, |
cs_insn * | insn | ||
) |
Definiert in Zeile 692 der Datei firmware_load_ng.c.
Definiert in Zeile 751 der Datei firmware_load_ng.c.
Definiert in Zeile 682 der Datei firmware_load_ng.c.
Definiert in Zeile 670 der Datei firmware_load_ng.c.
Definiert in Zeile 658 der Datei firmware_load_ng.c.
Definiert in Zeile 761 der Datei firmware_load_ng.c.
Definiert in Zeile 268 der Datei firmware_load_ng.c.
int search_calls_multi_end | ( | __attribute__((unused)) firmware * | fw, |
__attribute__((unused)) iter_state_t * | is, | ||
__attribute__((unused)) uint32_t | adr | ||
) |
Definiert in Zeile 1232 der Datei firmware_load_ng.c.
uint32_t search_disasm_calls | ( | firmware * | fw, |
iter_state_t * | is, | ||
uint32_t | val, | ||
__attribute__((unused)) void * | unused | ||
) |
Definiert in Zeile 1219 der Datei firmware_load_ng.c.
uint32_t search_disasm_calls_multi | ( | firmware * | fw, |
iter_state_t * | is, | ||
__attribute__((unused)) uint32_t | unused, | ||
void * | userdata | ||
) |
Definiert in Zeile 1240 der Datei firmware_load_ng.c.
uint32_t search_disasm_const_ref | ( | firmware * | fw, |
iter_state_t * | is, | ||
uint32_t | val, | ||
__attribute__((unused)) void * | unused | ||
) |
Definiert in Zeile 1170 der Datei firmware_load_ng.c.
uint32_t search_disasm_str_ref | ( | firmware * | fw, |
iter_state_t * | is, | ||
__attribute__((unused)) uint32_t | val, | ||
void * | udata | ||
) |
Definiert in Zeile 1192 der Datei firmware_load_ng.c.
const insn_match_t match_b[] |
Definiert in Zeile 1712 der Datei firmware_load_ng.c.
const insn_match_t match_b_bl[] |
Definiert in Zeile 1720 der Datei firmware_load_ng.c.
const insn_match_t match_b_bl_blximm[] |
Definiert in Zeile 1726 der Datei firmware_load_ng.c.
const insn_match_t match_bl[] |
Definiert in Zeile 1716 der Datei firmware_load_ng.c.
const insn_match_t match_bl_blximm[] |
Definiert in Zeile 1733 der Datei firmware_load_ng.c.
const insn_match_t match_bxlr[] |
Definiert in Zeile 1739 der Datei firmware_load_ng.c.
const insn_match_t match_ldr_pc[] |
Definiert in Zeile 1744 der Datei firmware_load_ng.c.