Rizin
unix-like reverse engineering framework and cli tools
|
#include <rz_analysis.h>
#include <rz_lib.h>
#include <ht_uu.h>
#include <capstone/capstone.h>
#include <capstone/arm.h>
#include <rz_util/rz_assert.h>
#include "./analysis_arm_hacks.inc"
#include "../arch/arm/arm_cs.h"
#include "../arch/arm/arm_accessors32.h"
#include "../arch/arm/arm_accessors64.h"
#include "../../asm/arch/arm/arm_it.h"
Go to the source code of this file.
Classes | |
struct | arm_cs_context_t |
Macros | |
#define | KW(d, ds, m, ms) rz_list_append(l, rz_search_keyword_new((const ut8 *)d, ds, (const ut8 *)m, ms, NULL)) |
Typedefs | |
typedef struct arm_cs_context_t | ArmCSContext |
Variables | |
static char * | reg_list [] |
RzAnalysisPlugin | rz_analysis_plugin_arm_cs |
RZ_API RzLibStruct | rizin_plugin |
#define KW | ( | d, | |
ds, | |||
m, | |||
ms | |||
) | rz_list_append(l, rz_search_keyword_new((const ut8 *)d, ds, (const ut8 *)m, ms, NULL)) |
typedef struct arm_cs_context_t ArmCSContext |
|
static |
Definition at line 2232 of file analysis_arm_cs.c.
References analysis_op(), ARM64_INS_ADR, ARM64_INS_ADRP, ARM64_INS_B, ARM64_INS_BL, ARM64_INS_CBNZ, ARM64_INS_CBZ, ARM64_INS_LDNP, ARM64_INS_LDP, ARM64_INS_LDPSW, ARM64_INS_LDR, ARM64_INS_LDRB, ARM64_INS_LDRH, ARM64_INS_LDRSB, ARM64_INS_LDRSH, ARM64_INS_LDRSW, ARM64_INS_LDTR, ARM64_INS_LDTRB, ARM64_INS_LDTRH, ARM64_INS_LDTRSB, ARM64_INS_LDTRSH, ARM64_INS_LDTRSW, ARM64_INS_LDUR, ARM64_INS_LDURB, ARM64_INS_LDURH, ARM64_INS_LDURSB, ARM64_INS_LDURSH, ARM64_INS_LDURSW, ARM64_INS_LDXP, ARM64_INS_LDXR, ARM64_INS_LDXRB, ARM64_INS_LDXRH, ARM64_INS_STNP, ARM64_INS_STP, ARM64_INS_STR, ARM64_INS_STRB, ARM64_INS_STRH, ARM64_INS_STTR, ARM64_INS_STTRB, ARM64_INS_STTRH, ARM64_INS_STUR, ARM64_INS_STURB, ARM64_INS_STURH, ARM64_INS_STXR, ARM64_INS_STXRB, ARM64_INS_STXRH, ARM64_INS_TBNZ, ARM64_INS_TBZ, rz_analysis_t::big_endian, rz_analysis_t::bits, rz_analysis_hint_t::bits, free(), setup::idx, malloc(), memcpy(), memset(), NULL, rz_analysis_hint_get(), rz_analysis_op_free(), RZ_ANALYSIS_OP_MASK_BASIC, rz_analysis_op_new(), RZ_ANALYSIS_OP_TYPE_CJMP, rz_read_ble(), rz_write_ble(), and UT64_MAX.
|
static |
Definition at line 1739 of file analysis_arm_cs.c.
References a, addr, anop32(), anop64(), CS_ARCH_ARM, CS_ARCH_ARM64, cs_close(), cs_disasm(), capstone::CS_ERR_OK, cs_free(), CS_MODE_ARM, CS_MODE_BIG_ENDIAN, CS_MODE_LITTLE_ENDIAN, CS_MODE_MCLASS, CS_MODE_THUMB, cs_open(), CS_OPT_DETAIL, CS_OPT_ON, cs_option(), len, mask, n, NULL, op_fillval(), opex(), opex64(), patch_capstone_bugs(), RZ_ANALYSIS_OP_MASK_DISASM, RZ_ANALYSIS_OP_MASK_ESIL, RZ_ANALYSIS_OP_MASK_IL, RZ_ANALYSIS_OP_MASK_OPEX, RZ_ANALYSIS_OP_MASK_VAL, RZ_ANALYSIS_OP_TYPE_ILL, rz_arm_cs_32_il(), rz_arm_cs_64_il(), rz_arm_cs_analysis_op_32_esil(), rz_arm_cs_analysis_op_64_esil(), rz_str_newf(), set_opdir(), and strdup().
Referenced by analysis_mask(), and rz_core_disasm_pdi_with_buf().
|
static |
Definition at line 2355 of file analysis_arm_cs.c.
References rz_analysis_t::bits, KW, NULL, rz_list_free(), rz_list_newf(), and rz_search_keyword_free().
|
static |
Definition at line 1025 of file analysis_arm_cs.c.
References a, addr, ARM_CC_AL, ARM_CC_INVALID, ARM_GRP_CRC, ARM_GRP_CRYPTO, ARM_GRP_FPARMV8, ARM_GRP_NEON, ARM_GRP_PRIVILEGE, ARM_GRP_THUMB2DSP, ARM_GRP_VIRTUALIZATION, ARM_INS_ADC, ARM_INS_ADD, ARM_INS_ADDW, ARM_INS_ADR, ARM_INS_AND, ARM_INS_ASR, ARM_INS_B, ARM_INS_BFI, ARM_INS_BIC, ARM_INS_BKPT, ARM_INS_BL, ARM_INS_BLX, ARM_INS_BX, ARM_INS_BXJ, ARM_INS_CBNZ, ARM_INS_CBZ, ARM_INS_CMN, ARM_INS_CMP, ARM_INS_EOR, ARM_INS_FLDMDBX, ARM_INS_FLDMIAX, ARM_INS_IT, ARM_INS_LDM, ARM_INS_LDMDA, ARM_INS_LDMDB, ARM_INS_LDMIB, ARM_INS_LDR, ARM_INS_LDRB, ARM_INS_LDRBT, ARM_INS_LDRD, ARM_INS_LDREX, ARM_INS_LDREXB, ARM_INS_LDREXD, ARM_INS_LDREXH, ARM_INS_LDRH, ARM_INS_LDRHT, ARM_INS_LDRSB, ARM_INS_LDRSBT, ARM_INS_LDRSH, ARM_INS_LDRSHT, ARM_INS_LDRT, ARM_INS_LSL, ARM_INS_LSR, ARM_INS_MOV, ARM_INS_MOVT, ARM_INS_MOVW, ARM_INS_MRS, ARM_INS_MSR, ARM_INS_MUL, ARM_INS_NOP, ARM_INS_ORN, ARM_INS_ORR, ARM_INS_PLD, ARM_INS_POP, ARM_INS_PUSH, ARM_INS_ROR, ARM_INS_RRX, ARM_INS_SADD16, ARM_INS_SADD8, ARM_INS_SBFX, ARM_INS_SDIV, ARM_INS_SMULL, ARM_INS_SSUB16, ARM_INS_SSUB8, ARM_INS_STM, ARM_INS_STMDA, ARM_INS_STMDB, ARM_INS_STR, ARM_INS_STRB, ARM_INS_STRBT, ARM_INS_STRD, ARM_INS_STREX, ARM_INS_STREXB, ARM_INS_STREXD, ARM_INS_STREXH, ARM_INS_STRH, ARM_INS_STRHT, ARM_INS_STRT, ARM_INS_SUB, ARM_INS_SUBW, ARM_INS_SVC, ARM_INS_SXTB, ARM_INS_SXTH, ARM_INS_TBB, ARM_INS_TBH, ARM_INS_TRAP, ARM_INS_TST, ARM_INS_UBFX, ARM_INS_UDF, ARM_INS_UDIV, ARM_INS_UMULL, ARM_INS_UXTAB, ARM_INS_UXTAB16, ARM_INS_UXTAH, ARM_INS_UXTB, ARM_INS_UXTB16, ARM_INS_UXTH, ARM_INS_VCMP, ARM_INS_VDIV, ARM_INS_VMOV, ARM_INS_VMOVL, ARM_INS_VMOVN, ARM_INS_VMUL, ARM_INS_VQMOVN, ARM_INS_VQMOVUN, ARM_OP_REG, ARM_REG_FP, ARM_REG_IP, ARM_REG_LR, ARM_REG_PC, ARM_REG_SP, test-lz4-speed::branch, cc_name(), cond_cs2r2(), cs_insn_group(), cs_reg_name(), delta, from, handle, i, IMM, in, INSOP, instructions, ISIMM, ISMEM, ISREG, length, LSHIFT, mem, MEMDISP, PC, PFMT64x, setup::provides, reg, REGBASE, REGID, RZ_ANALYSIS_OP_FAMILY_CPU, RZ_ANALYSIS_OP_FAMILY_CRYPTO, RZ_ANALYSIS_OP_FAMILY_FPU, RZ_ANALYSIS_OP_FAMILY_MMX, RZ_ANALYSIS_OP_FAMILY_PRIV, RZ_ANALYSIS_OP_FAMILY_THREAD, RZ_ANALYSIS_OP_FAMILY_VIRT, RZ_ANALYSIS_OP_TYPE_ADD, RZ_ANALYSIS_OP_TYPE_AND, RZ_ANALYSIS_OP_TYPE_CALL, RZ_ANALYSIS_OP_TYPE_CAST, RZ_ANALYSIS_OP_TYPE_CJMP, RZ_ANALYSIS_OP_TYPE_CMP, RZ_ANALYSIS_OP_TYPE_CRET, RZ_ANALYSIS_OP_TYPE_DIV, RZ_ANALYSIS_OP_TYPE_ILL, RZ_ANALYSIS_OP_TYPE_JMP, RZ_ANALYSIS_OP_TYPE_LEA, RZ_ANALYSIS_OP_TYPE_LOAD, RZ_ANALYSIS_OP_TYPE_MOV, RZ_ANALYSIS_OP_TYPE_MUL, RZ_ANALYSIS_OP_TYPE_NOP, RZ_ANALYSIS_OP_TYPE_OR, RZ_ANALYSIS_OP_TYPE_POP, RZ_ANALYSIS_OP_TYPE_PUSH, RZ_ANALYSIS_OP_TYPE_RCALL, RZ_ANALYSIS_OP_TYPE_RET, RZ_ANALYSIS_OP_TYPE_RJMP, RZ_ANALYSIS_OP_TYPE_ROR, RZ_ANALYSIS_OP_TYPE_SAR, RZ_ANALYSIS_OP_TYPE_SHL, RZ_ANALYSIS_OP_TYPE_SHR, RZ_ANALYSIS_OP_TYPE_STORE, RZ_ANALYSIS_OP_TYPE_SUB, RZ_ANALYSIS_OP_TYPE_SWI, RZ_ANALYSIS_OP_TYPE_TRAP, RZ_ANALYSIS_OP_TYPE_UCJMP, RZ_ANALYSIS_OP_TYPE_UJMP, RZ_ANALYSIS_OP_TYPE_XOR, rz_analysis_optype_to_string(), RZ_ANALYSIS_STACK_GET, RZ_ANALYSIS_STACK_INC, RZ_ANALYSIS_STACK_SET, rz_arm_it_apply_cond(), rz_arm_it_update_block(), rz_arm_it_update_nonblock(), RZ_LOG_DEBUG, rz_str_get_null(), rz_str_newf(), RZ_TYPE_COND_NV, to, UT32_MAX, ut64(), UT64_MAX, and value.
Referenced by analysis_op().
|
static |
Definition at line 576 of file analysis_arm_cs.c.
References addr, ARM64_CC_GE, ARM64_CC_GT, ARM64_CC_LE, ARM64_CC_LT, ARM64_GRP_CRC, ARM64_GRP_CRYPTO, ARM64_GRP_FPARMV8, ARM64_GRP_NEON, ARM64_GRP_PRIVILEGE, ARM64_INS_ADC, ARM64_INS_ADD, ARM64_INS_ADR, ARM64_INS_ADRP, ARM64_INS_AND, ARM64_INS_ASR, ARM64_INS_B, ARM64_INS_BFI, ARM64_INS_BFXIL, ARM64_INS_BIC, ARM64_INS_BL, ARM64_INS_BLR, ARM64_INS_BR, ARM64_INS_BRK, ARM64_INS_CBNZ, ARM64_INS_CBZ, ARM64_INS_CCMN, ARM64_INS_CCMP, ARM64_INS_CINC, ARM64_INS_CMN, ARM64_INS_CMP, ARM64_INS_CSEL, ARM64_INS_CSET, ARM64_INS_DC, ARM64_INS_DMB, ARM64_INS_DSB, ARM64_INS_DUP, ARM64_INS_EON, ARM64_INS_EOR, ARM64_INS_ERET, ARM64_INS_EXT, ARM64_INS_FCMP, ARM64_INS_FCSEL, ARM64_INS_FDIV, ARM64_INS_FMADD, ARM64_INS_FMOV, ARM64_INS_FMUL, ARM64_INS_HLT, ARM64_INS_IC, ARM64_INS_INS, ARM64_INS_ISB, ARM64_INS_LDNP, ARM64_INS_LDP, ARM64_INS_LDPSW, ARM64_INS_LDR, ARM64_INS_LDRB, ARM64_INS_LDRH, ARM64_INS_LDRSB, ARM64_INS_LDRSH, ARM64_INS_LDRSW, ARM64_INS_LDUR, ARM64_INS_LDURB, ARM64_INS_LDURSW, ARM64_INS_LSL, ARM64_INS_LSR, ARM64_INS_MADD, ARM64_INS_MOV, ARM64_INS_MOVI, ARM64_INS_MOVK, ARM64_INS_MOVN, ARM64_INS_MOVZ, ARM64_INS_MRS, ARM64_INS_MSR, ARM64_INS_MSUB, ARM64_INS_MUL, ARM64_INS_NEG, ARM64_INS_NEGS, ARM64_INS_NOP, ARM64_INS_ORN, ARM64_INS_ORR, ARM64_INS_RET, ARM64_INS_REV64, ARM64_INS_ROR, ARM64_INS_SBFIZ, ARM64_INS_SBFX, ARM64_INS_SDIV, ARM64_INS_SHL, ARM64_INS_SMADDL, ARM64_INS_SMOV, ARM64_INS_SMULL, ARM64_INS_STLXR, ARM64_INS_STLXRH, ARM64_INS_STNP, ARM64_INS_STP, ARM64_INS_STR, ARM64_INS_STRB, ARM64_INS_STUR, ARM64_INS_STURB, ARM64_INS_STXR, ARM64_INS_STXRB, ARM64_INS_STXRH, ARM64_INS_SUB, ARM64_INS_SVC, ARM64_INS_SXTB, ARM64_INS_SXTH, ARM64_INS_SXTW, ARM64_INS_TBNZ, ARM64_INS_TBZ, ARM64_INS_TST, ARM64_INS_UBFIZ, ARM64_INS_UBFM, ARM64_INS_UBFX, ARM64_INS_UDIV, ARM64_INS_UMADDL, ARM64_INS_UMOV, ARM64_INS_UMULL, ARM64_INS_USHLL, ARM64_INS_UXTB, ARM64_INS_UXTH, ARM64_INS_UXTW, ARM64_INS_XTN, ARM64_INS_XTN2, ARM64_REG_LR, ARM64_REG_SP, ARM64_REG_X29, ARM_CC_AL, ARM_REG_PC, cond_cs2r2(), cs_insn_group(), cs_reg_name(), d, handle, IMM, IMM64, int, ISIMM64, ISPOSTINDEX64, ISPREINDEX64, ISREG64, MEMDISP64, PFMT64x, REGBASE64, REGID, REGID64, RZ_ANALYSIS_OP_FAMILY_CPU, RZ_ANALYSIS_OP_FAMILY_CRYPTO, RZ_ANALYSIS_OP_FAMILY_FPU, RZ_ANALYSIS_OP_FAMILY_MMX, RZ_ANALYSIS_OP_FAMILY_PRIV, RZ_ANALYSIS_OP_FAMILY_SECURITY, RZ_ANALYSIS_OP_FAMILY_THREAD, RZ_ANALYSIS_OP_TYPE_ADD, RZ_ANALYSIS_OP_TYPE_AND, RZ_ANALYSIS_OP_TYPE_CALL, RZ_ANALYSIS_OP_TYPE_CAST, RZ_ANALYSIS_OP_TYPE_CJMP, RZ_ANALYSIS_OP_TYPE_CMOV, RZ_ANALYSIS_OP_TYPE_CMP, RZ_ANALYSIS_OP_TYPE_DIV, RZ_ANALYSIS_OP_TYPE_JMP, RZ_ANALYSIS_OP_TYPE_LEA, RZ_ANALYSIS_OP_TYPE_LOAD, RZ_ANALYSIS_OP_TYPE_MOV, RZ_ANALYSIS_OP_TYPE_MUL, RZ_ANALYSIS_OP_TYPE_NOP, RZ_ANALYSIS_OP_TYPE_NOT, RZ_ANALYSIS_OP_TYPE_OR, RZ_ANALYSIS_OP_TYPE_RCALL, RZ_ANALYSIS_OP_TYPE_RET, RZ_ANALYSIS_OP_TYPE_RJMP, RZ_ANALYSIS_OP_TYPE_ROR, RZ_ANALYSIS_OP_TYPE_SAR, RZ_ANALYSIS_OP_TYPE_SHL, RZ_ANALYSIS_OP_TYPE_SHR, RZ_ANALYSIS_OP_TYPE_STORE, RZ_ANALYSIS_OP_TYPE_SUB, RZ_ANALYSIS_OP_TYPE_SWI, RZ_ANALYSIS_OP_TYPE_SYNC, RZ_ANALYSIS_OP_TYPE_TRAP, RZ_ANALYSIS_OP_TYPE_UCJMP, RZ_ANALYSIS_OP_TYPE_UJMP, RZ_ANALYSIS_OP_TYPE_XOR, RZ_ANALYSIS_STACK_GET, RZ_ANALYSIS_STACK_INC, RZ_ANALYSIS_STACK_RESET, RZ_LOG_DEBUG, RZ_TYPE_COND_NV, and ut64().
Referenced by analysis_op().
|
static |
Definition at line 2210 of file analysis_arm_cs.c.
References rz_analysis_t::bits, RZ_ANALYSIS_ARCHINFO_ALIGN, RZ_ANALYSIS_ARCHINFO_DATA_ALIGN, RZ_ANALYSIS_ARCHINFO_MAX_OP_SIZE, and RZ_ANALYSIS_ARCHINFO_MIN_OP_SIZE.
Definition at line 304 of file analysis_arm_cs.c.
References ARM64_CC_EQ, ARM64_CC_GE, ARM64_CC_GT, ARM64_CC_HI, ARM64_CC_HS, ARM64_CC_LE, ARM64_CC_LO, ARM64_CC_LS, ARM64_CC_LT, ARM64_CC_MI, ARM64_CC_NE, ARM64_CC_PL, ARM64_CC_VC, and ARM64_CC_VS.
Referenced by opex64().
Definition at line 552 of file analysis_arm_cs.c.
References ARM_CC_AL, ARM_CC_EQ, ARM_CC_GE, ARM_CC_GT, ARM_CC_HI, ARM_CC_HS, ARM_CC_LE, ARM_CC_LO, ARM_CC_LS, ARM_CC_LT, ARM_CC_MI, ARM_CC_NE, ARM_CC_PL, ARM_CC_VC, ARM_CC_VS, RZ_TYPE_COND_AL, RZ_TYPE_COND_EQ, RZ_TYPE_COND_GE, RZ_TYPE_COND_GT, RZ_TYPE_COND_HI, RZ_TYPE_COND_HS, RZ_TYPE_COND_LE, RZ_TYPE_COND_LO, RZ_TYPE_COND_LS, RZ_TYPE_COND_LT, RZ_TYPE_COND_MI, RZ_TYPE_COND_NE, RZ_TYPE_COND_PL, RZ_TYPE_COND_VC, and RZ_TYPE_COND_VS.
|
static |
Definition at line 1641 of file analysis_arm_cs.c.
References rz_analysis_value_new().
Referenced by op_fillval().
|
static |
Definition at line 339 of file analysis_arm_cs.c.
References ARM64_EXT_SXTB, ARM64_EXT_SXTH, ARM64_EXT_SXTW, ARM64_EXT_SXTX, ARM64_EXT_UXTB, ARM64_EXT_UXTH, ARM64_EXT_UXTW, and ARM64_EXT_UXTX.
Referenced by opex64().
|
static |
Definition at line 2397 of file analysis_arm_cs.c.
References cs_close(), free(), rz_arm_it_context_fini(), and rz_return_val_if_fail.
Referenced by parseMod().
|
static |
Definition at line 1822 of file analysis_arm_cs.c.
References rz_analysis_t::bits, rz_analysis_t::os, p, rz_str_newf(), and strdup().
|
static |
Definition at line 2406 of file analysis_arm_cs.c.
References rz_analysis_t::big_endian, rz_analysis_t::bits, rz_arm_cs_32_il_config(), and rz_arm_cs_64_il_config().
|
static |
Definition at line 2384 of file analysis_arm_cs.c.
References rz_arm_it_context_init(), and RZ_NEW0.
Definition at line 1508 of file analysis_arm_cs.c.
References ARM_REG_INVALID, and reg.
Referenced by add_hit_to_hits(), add_hit_to_sorted_hits(), handle_forward_disassemble(), parse_reg_name(), prune_hits_in_addr_range(), and rz_core_asm_back_disassemble().
Definition at line 1534 of file analysis_arm_cs.c.
References ARM64_REG_INVALID, and reg.
Referenced by parse_reg64_name().
|
static |
Definition at line 1648 of file analysis_arm_cs.c.
References cs_arm_op::access, cs_arm64_op::access, ARM64_OP_IMM, ARM_OP_IMM, bits(), count, create_src_dst(), CS_AC_WRITE, handle, i, INSOP, INSOP64, rz_analysis_t::reg, RZ_ANALYSIS_OP_TYPE_ADD, RZ_ANALYSIS_OP_TYPE_AND, RZ_ANALYSIS_OP_TYPE_CAST, RZ_ANALYSIS_OP_TYPE_CMP, RZ_ANALYSIS_OP_TYPE_DIV, RZ_ANALYSIS_OP_TYPE_LEA, RZ_ANALYSIS_OP_TYPE_LOAD, RZ_ANALYSIS_OP_TYPE_MASK, RZ_ANALYSIS_OP_TYPE_MOV, RZ_ANALYSIS_OP_TYPE_MUL, RZ_ANALYSIS_OP_TYPE_NOR, RZ_ANALYSIS_OP_TYPE_NOT, RZ_ANALYSIS_OP_TYPE_OR, RZ_ANALYSIS_OP_TYPE_ROL, RZ_ANALYSIS_OP_TYPE_ROR, RZ_ANALYSIS_OP_TYPE_SAL, RZ_ANALYSIS_OP_TYPE_SAR, RZ_ANALYSIS_OP_TYPE_SHL, RZ_ANALYSIS_OP_TYPE_SHR, RZ_ANALYSIS_OP_TYPE_STORE, RZ_ANALYSIS_OP_TYPE_SUB, RZ_ANALYSIS_OP_TYPE_XOR, set_src_dst(), cs_arm_op::type, and cs_arm64_op::type.
Referenced by analysis_op().
Definition at line 167 of file analysis_arm_cs.c.
References ARM_CC_AL, ARM_CC_INVALID, ARM_CPSFLAG_INVALID, ARM_CPSMODE_INVALID, ARM_MB_INVALID, ARM_OP_CIMM, ARM_OP_FP, ARM_OP_IMM, ARM_OP_MEM, ARM_OP_PIMM, ARM_OP_REG, ARM_OP_SETEND, ARM_OP_SYSREG, ARM_REG_INVALID, ARM_SETEND_BE, ARM_SETEND_LE, ARM_SFT_ASR, ARM_SFT_ASR_REG, ARM_SFT_INVALID, ARM_SFT_LSL, ARM_SFT_LSL_REG, ARM_SFT_LSR, ARM_SFT_LSR_REG, ARM_SFT_ROR, ARM_SFT_ROR_REG, ARM_SFT_RRX, ARM_SFT_RRX_REG, ARM_VECTORDATA_INVALID, cc_name(), cs_reg_name(), handle, i, pj_end(), pj_free(), pj_ka(), pj_kb(), pj_kd(), pj_ki(), pj_kn(), pj_ko(), pj_ks(), pj_new(), pj_o(), pj_string(), reg, rz_strbuf_append(), rz_strbuf_init(), shift_type_name(), ut64(), vector_data_type_name(), and x.
Referenced by analysis_op().
Definition at line 416 of file analysis_arm_cs.c.
References ARM64_CC_AL, ARM64_CC_INVALID, ARM64_CC_NV, ARM64_EXT_INVALID, ARM64_OP_BARRIER, ARM64_OP_CIMM, ARM64_OP_FP, ARM64_OP_IMM, ARM64_OP_MEM, ARM64_OP_PREFETCH, ARM64_OP_PSTATE, ARM64_OP_REG, ARM64_OP_REG_MRS, ARM64_OP_REG_MSR, ARM64_OP_SYS, ARM64_PSTATE_DAIFCLR, ARM64_PSTATE_DAIFSET, ARM64_PSTATE_SPSEL, ARM64_REG_INVALID, ARM64_SFT_ASR, ARM64_SFT_INVALID, ARM64_SFT_LSL, ARM64_SFT_LSR, ARM64_SFT_MSL, ARM64_SFT_ROR, ARM64_VAS_INVALID, ARM64_VESS_INVALID, cc_name64(), cs_reg_name(), extender_name(), handle, i, pj_end(), pj_free(), pj_ka(), pj_kb(), pj_kd(), pj_ki(), pj_kN(), pj_kn(), pj_ko(), pj_ks(), pj_new(), pj_o(), pj_string(), rz_strbuf_append(), rz_strbuf_init(), ut64(), vas_name(), and x.
Referenced by analysis_op().
|
static |
Definition at line 1548 of file analysis_arm_cs.c.
References ARM64_OP_MEM, ARM64_OP_REG, arm64_op_mem::base, cs_reg_name(), handle, arm64_op_mem::index, INSOP64, is_valid64(), cs_arm64_op::mem, rz_reg_item_t::name, reg, cs_arm64_op::reg, reg_list, rz_reg_get(), RZ_REG_TYPE_ANY, and cs_arm64_op::type.
Referenced by set_src_dst().
|
static |
Definition at line 1512 of file analysis_arm_cs.c.
References ARM_OP_MEM, ARM_OP_REG, arm_op_mem::base, cs_reg_name(), handle, arm_op_mem::index, INSOP, is_valid(), cs_arm_op::mem, reg, cs_arm_op::reg, rz_reg_get(), RZ_REG_TYPE_ANY, and cs_arm_op::type.
Referenced by set_src_dst().
Definition at line 1719 of file analysis_arm_cs.c.
References ARM_INS_LDRHT, bits(), ISIMM, ISMEM, ISREG, and rz_read_ble32().
Referenced by analysis_op().
|
static |
Definition at line 1573 of file analysis_arm_cs.c.
References RZ_ANALYSIS_OP_DIR_EXEC, RZ_ANALYSIS_OP_DIR_READ, RZ_ANALYSIS_OP_DIR_REF, RZ_ANALYSIS_OP_DIR_WRITE, RZ_ANALYSIS_OP_TYPE_CALL, RZ_ANALYSIS_OP_TYPE_JMP, RZ_ANALYSIS_OP_TYPE_LEA, RZ_ANALYSIS_OP_TYPE_LOAD, RZ_ANALYSIS_OP_TYPE_MASK, RZ_ANALYSIS_OP_TYPE_STORE, RZ_ANALYSIS_OP_TYPE_UCALL, and RZ_ANALYSIS_OP_TYPE_UJMP.
Referenced by analysis_op().
|
static |
Definition at line 1595 of file analysis_arm_cs.c.
References ARM64_OP_IMM, ARM64_OP_MEM, ARM64_OP_REG, ARM_OP_IMM, ARM_OP_MEM, ARM_OP_REG, bits(), arm_op_mem::disp, arm64_op_mem::disp, handle, cs_arm_op::imm, cs_arm64_op::imm, INSOP, INSOP64, arm_op_mem::lshift, cs_arm_op::mem, cs_arm64_op::mem, parse_reg64_name(), parse_reg_name(), reg, RZ_ANALYSIS_VAL_IMM, RZ_ANALYSIS_VAL_MEM, RZ_ANALYSIS_VAL_REG, arm_op_mem::scale, cs_arm_op::type, cs_arm64_op::type, val, and x.
Referenced by op_fillval().
|
static |
Definition at line 24 of file analysis_arm_cs.c.
References ARM_SFT_ASR, ARM_SFT_ASR_REG, ARM_SFT_LSL, ARM_SFT_LSL_REG, ARM_SFT_LSR, ARM_SFT_LSR_REG, ARM_SFT_ROR, ARM_SFT_ROR_REG, ARM_SFT_RRX, ARM_SFT_RRX_REG, and type.
Referenced by opex().
Definition at line 362 of file analysis_arm_cs.c.
References ARM64_VAS_16B, ARM64_VAS_1D, ARM64_VAS_1Q, ARM64_VAS_2D, ARM64_VAS_2S, ARM64_VAS_4H, ARM64_VAS_4S, ARM64_VAS_8B, and ARM64_VAS_8H.
Referenced by opex64().
|
static |
Definition at line 51 of file analysis_arm_cs.c.
References ARM_VECTORDATA_F16F32, ARM_VECTORDATA_F16F64, ARM_VECTORDATA_F32, ARM_VECTORDATA_F32F16, ARM_VECTORDATA_F32F64, ARM_VECTORDATA_F32S16, ARM_VECTORDATA_F32S32, ARM_VECTORDATA_F32U16, ARM_VECTORDATA_F32U32, ARM_VECTORDATA_F64, ARM_VECTORDATA_F64F16, ARM_VECTORDATA_F64F32, ARM_VECTORDATA_F64S16, ARM_VECTORDATA_F64S32, ARM_VECTORDATA_F64U16, ARM_VECTORDATA_F64U32, ARM_VECTORDATA_I16, ARM_VECTORDATA_I32, ARM_VECTORDATA_I64, ARM_VECTORDATA_I8, ARM_VECTORDATA_P8, ARM_VECTORDATA_S16, ARM_VECTORDATA_S16F32, ARM_VECTORDATA_S16F64, ARM_VECTORDATA_S32, ARM_VECTORDATA_S32F32, ARM_VECTORDATA_S32F64, ARM_VECTORDATA_S64, ARM_VECTORDATA_S8, ARM_VECTORDATA_U16, ARM_VECTORDATA_U16F32, ARM_VECTORDATA_U16F64, ARM_VECTORDATA_U32, ARM_VECTORDATA_U32F32, ARM_VECTORDATA_U32F64, ARM_VECTORDATA_U64, ARM_VECTORDATA_U8, and type.
Referenced by opex().
|
static |
Definition at line 1538 of file analysis_arm_cs.c.
Referenced by parse_reg64_name().
RZ_API RzLibStruct rizin_plugin |
Definition at line 2432 of file analysis_arm_cs.c.
RzAnalysisPlugin rz_analysis_plugin_arm_cs |
Definition at line 2413 of file analysis_arm_cs.c.