Rizin
unix-like reverse engineering framework and cli tools
rz_analysis.h File Reference
#include <rz_types.h>
#include <rz_io.h>
#include <rz_reg.h>
#include <rz_list.h>
#include <rz_search.h>
#include <rz_util.h>
#include <rz_bind.h>
#include <rz_syscall.h>
#include <set.h>
#include <rz_flag.h>
#include <rz_bin.h>
#include <rz_type.h>
#include <rz_il.h>
#include <rz_platform.h>
#include <rz_cmd.h>

Go to the source code of this file.

Classes

struct  rz_analysis_dwarf_context
 
struct  RzAnalysisMetaUserItem
 
struct  rz_analysis_range_t
 
struct  rz_analysis_type_var_t
 
struct  rz_analysis_type_ptr_t
 
struct  rz_analysis_type_array_t
 
struct  rz_analysis_type_struct_t
 
struct  rz_analysis_type_union_t
 
struct  rz_analysis_type_alloca_t
 
struct  rz_analysis_diff_t
 
struct  rz_analysis_attr_t
 
struct  rz_analysis_fcn_meta_t
 
struct  rz_analysis_function_t
 
struct  rz_analysis_func_arg_t
 
struct  rz_analysis_type_t
 
struct  rz_analysis_meta_item_t
 
struct  rz_analysis_case_obj_t
 
struct  rz_analysis_switch_obj_t
 
struct  rz_analysis_callbacks_t
 
struct  rz_analysis_options_t
 
struct  rz_analysis_hint_cb_t
 
struct  rz_analysis_t
 
struct  rz_analysis_addr_hint_record_t
 
struct  rz_analysis_hint_t
 
struct  rz_analysis_bind_t
 
struct  rz_analysis_var_access_t
 
struct  rz_analysis_var_t
 
struct  rz_analysis_var_global_t
 Global variables. More...
 
struct  rz_analysis_var_field_t
 
struct  rz_analysis_value_t
 
struct  rz_analysis_op_t
 
struct  rz_analysis_cond_t
 
struct  rz_analysis_bb_t
 
struct  rz_analysis_task_item
 
struct  rz_analysis_ref_t
 
struct  rz_analysis_refline_t
 
struct  rz_analysis_cycle_frame_t
 
struct  rz_analysis_cycle_hook_t
 
struct  rz_analysis_esil_word_t
 
struct  rz_analysis_ref_char
 
struct  rz_analysis_esil_source_t
 
struct  rz_analysis_esil_interrupt_handler_t
 
struct  rz_analysis_esil_change_reg_t
 
struct  rz_analysis_esil_change_mem_t
 
struct  rz_analysis_esil_trace_t
 
struct  rz_analysis_esil_callbacks_t
 
struct  rz_analysis_esil_t
 
struct  rz_analysis_il_init_state_var_t
 Description of the contents of a single IL variable. More...
 
struct  rz_analysis_il_init_state_t
 Description of an initial state of an RzAnalysisILVM. More...
 
struct  rz_analysis_il_config_t
 Description of the global context of an RzAnalysisILVM. More...
 
struct  rz_analysis_il_vm_t
 High-level RzIL vm to emulate disassembled code. More...
 
struct  rz_analysis_esil_interrupt_t
 
struct  rz_analysis_esil_operation_t
 
struct  rz_analysis_esil_expr_offset_t
 
struct  rz_analysis_esil_basic_block_t
 
struct  rz_analysis_plugin_t
 

Macros

#define USE_VARSUBS   0
 
#define esilprintf(op, fmt, ...)   rz_strbuf_setf(&op->esil, fmt, ##__VA_ARGS__)
 
#define RZ_ANALYSIS_ADDR_TYPE_EXEC   1
 
#define RZ_ANALYSIS_ADDR_TYPE_READ   1 << 1
 
#define RZ_ANALYSIS_ADDR_TYPE_WRITE   1 << 2
 
#define RZ_ANALYSIS_ADDR_TYPE_FLAG   1 << 3
 
#define RZ_ANALYSIS_ADDR_TYPE_FUNC   1 << 4
 
#define RZ_ANALYSIS_ADDR_TYPE_HEAP   1 << 5
 
#define RZ_ANALYSIS_ADDR_TYPE_STACK   1 << 6
 
#define RZ_ANALYSIS_ADDR_TYPE_REG   1 << 7
 
#define RZ_ANALYSIS_ADDR_TYPE_PROGRAM   1 << 8
 
#define RZ_ANALYSIS_ADDR_TYPE_LIBRARY   1 << 9
 
#define RZ_ANALYSIS_ADDR_TYPE_ASCII   1 << 10
 
#define RZ_ANALYSIS_ADDR_TYPE_SEQUENCE   1 << 11
 
#define RZ_ANALYSIS_ARCHINFO_MIN_OP_SIZE   0
 
#define RZ_ANALYSIS_ARCHINFO_MAX_OP_SIZE   1
 
#define RZ_ANALYSIS_ARCHINFO_ALIGN   2
 
#define RZ_ANALYSIS_ARCHINFO_DATA_ALIGN   4
 
#define RZ_ANALYSIS_GET_OFFSET(x, y, z)    (x && x->binb.bin && x->binb.get_offset) ? x->binb.get_offset(x->binb.bin, y, z) : -1
 
#define RZ_ANALYSIS_GET_NAME(x, y, z)    (x && x->binb.bin && x->binb.get_name) ? x->binb.get_name(x->binb.bin, y, z) : NULL
 
#define RZ_ANALYSIS_CC_MAXARG   16
 
#define RZ_ANALYSIS_DIFF_THRESHOLD   (0.5)
 
#define RZ_ANALYSIS_OP_TYPE_MASK   0x8000ffff
 
#define RZ_ANALYSIS_OP_HINT_MASK   0xf0000000
 
#define RZ_ANALYSIS_ESIL_GOTO_LIMIT   4096
 
#define VARPREFIX   "var"
 
#define ARGPREFIX   "arg"
 
#define RZ_TYPE_COND_SINGLE(x)   (!x->arg[1] || x->arg[0] == x->arg[1])
 
#define ESIL_INTERNAL_PREFIX   '$'
 
#define ESIL_STACK_NAME   "esil.ram"
 
#define ANALYSIS_ESIL   struct rz_analysis_esil_t
 

Typedefs

typedef struct rz_analysis_dwarf_context RzAnalysisDwarfContext
 
typedef struct rz_analysis_range_t RzAnalysisRange
 
typedef struct rz_analysis_type_var_t RzAnalysisTypeVar
 
typedef struct rz_analysis_type_ptr_t RzAnalysisTypePtr
 
typedef struct rz_analysis_type_array_t RzAnalysisTypeArray
 
typedef struct rz_analysis_type_struct_t RzAnalysisTypeStruct
 
typedef struct rz_analysis_type_t RzAnalysisType
 
typedef struct rz_analysis_type_union_t RzAnalysisTypeUnion
 
typedef struct rz_analysis_type_alloca_t RzAnalysisTypeAlloca
 
typedef struct rz_analysis_diff_t RzAnalysisDiff
 
typedef struct rz_analysis_attr_t RzAnalysisAttr
 
typedef struct rz_analysis_fcn_meta_t RzAnalysisFcnMeta
 
typedef struct rz_analysis_function_t RzAnalysisFunction
 
typedef struct rz_analysis_func_arg_t RzAnalysisFuncArg
 
typedef struct rz_analysis_meta_item_t RzAnalysisMetaItem
 
typedef struct rz_analysis_case_obj_t RzAnalysisCaseOp
 
typedef struct rz_analysis_switch_obj_t RzAnalysisSwitchOp
 
typedef struct rz_analysis_callbacks_t RzAnalysisCallbacks
 
typedef struct rz_analysis_options_t RzAnalysisOptions
 
typedef struct rz_analysis_hint_cb_t RHintCb
 
typedef struct rz_analysis_il_vm_t RzAnalysisILVM
 
typedef struct rz_analysis_t RzAnalysis
 
typedef enum rz_analysis_addr_hint_type_t RzAnalysisAddrHintType
 
typedef struct rz_analysis_addr_hint_record_t RzAnalysisAddrHintRecord
 
typedef struct rz_analysis_hint_t RzAnalysisHint
 
typedef RzAnalysisFunction *(* RzAnalysisGetFcnIn) (RzAnalysis *analysis, ut64 addr, int type)
 
typedef RzAnalysisHint *(* RzAnalysisGetHint) (RzAnalysis *analysis, ut64 addr)
 
typedef struct rz_analysis_bind_t RzAnalysisBind
 
typedef const char *(* RzAnalysisLabelAt) (RzAnalysisFunction *fcn, ut64)
 
typedef struct rz_analysis_var_access_t RzAnalysisVarAccess
 
typedef struct rz_analysis_var_t RzAnalysisVar
 
typedef struct rz_analysis_var_global_t RzAnalysisVarGlobal
 Global variables. More...
 
typedef RZ_DEPRECATE struct rz_analysis_var_field_t RzAnalysisVarField
 
typedef struct rz_analysis_value_t RzAnalysisValue
 
typedef enum rz_analysis_data_type_t RzAnalysisDataType
 
typedef RzILOpEffectRzAnalysisLiftedILOp
 
typedef struct rz_analysis_op_t RzAnalysisOp
 
typedef struct rz_analysis_cond_t RzAnalysisCond
 
typedef struct rz_analysis_bb_t RzAnalysisBlock
 
typedef struct rz_analysis_task_item RzAnalysisTaskItem
 
typedef struct rz_analysis_ref_t RzAnalysisXRef
 
typedef struct rz_analysis_refline_t RzAnalysisRefline
 
typedef struct rz_analysis_cycle_frame_t RzAnalysisCycleFrame
 
typedef struct rz_analysis_cycle_hook_t RzAnalysisCycleHook
 
typedef struct rz_analysis_esil_word_t RzAnalysisEsilWord
 
typedef struct rz_analysis_ref_char RzAnalysisRefStr
 
typedef struct rz_analysis_esil_source_t RzAnalysisEsilSource
 
typedef bool(* RzAnalysisEsilInterruptCB) (ANALYSIS_ESIL *esil, ut32 interrupt, void *user)
 
typedef struct rz_analysis_esil_interrupt_handler_t RzAnalysisEsilInterruptHandler
 
typedef struct rz_analysis_esil_change_reg_t RzAnalysisEsilRegChange
 
typedef struct rz_analysis_esil_change_mem_t RzAnalysisEsilMemChange
 
typedef struct rz_analysis_esil_trace_t RzAnalysisEsilTrace
 
typedef int(* RzAnalysisEsilHookRegWriteCB) (ANALYSIS_ESIL *esil, const char *name, ut64 *val)
 
typedef struct rz_analysis_esil_callbacks_t RzAnalysisEsilCallbacks
 
typedef struct rz_analysis_esil_t RzAnalysisEsil
 
typedef RzAnalysisEsilRegChange RzAnalysisRzilRegChange
 
typedef RzAnalysisEsilMemChange RzAnalysisRzilMemChange
 
typedef RzAnalysisEsilTrace RzAnalysisRzilTrace
 
typedef struct rz_analysis_il_init_state_var_t RzAnalysisILInitStateVar
 Description of the contents of a single IL variable. More...
 
typedef struct rz_analysis_il_init_state_t RzAnalysisILInitState
 Description of an initial state of an RzAnalysisILVM. More...
 
typedef struct rz_analysis_il_config_t RzAnalysisILConfig
 Description of the global context of an RzAnalysisILVM. More...
 
typedef struct rz_analysis_esil_interrupt_t RzAnalysisEsilInterrupt
 
typedef bool(* RzAnalysisEsilOpCb) (RzAnalysisEsil *esil)
 
typedef struct rz_analysis_esil_operation_t RzAnalysisEsilOp
 
typedef struct rz_analysis_esil_expr_offset_t RzAnalysisEsilEOffset
 
typedef struct rz_analysis_esil_basic_block_t RzAnalysisEsilBB
 
typedef int(* RzAnalysisOpCallback) (RzAnalysis *a, RzAnalysisOp *op, ut64 addr, const ut8 *data, int len, RzAnalysisOpMask mask)
 
typedef bool(* RzAnalysisRegProfCallback) (RzAnalysis *a)
 
typedef char *(* RzAnalysisRegProfGetCallback) (RzAnalysis *a)
 
typedef int(* RzAnalysisFPBBCallback) (RzAnalysis *a, RzAnalysisBlock *bb)
 
typedef int(* RzAnalysisFPFcnCallback) (RzAnalysis *a, RzAnalysisFunction *fcn)
 
typedef int(* RzAnalysisDiffBBCallback) (RzAnalysis *analysis, RzAnalysisFunction *fcn, RzAnalysisFunction *fcn2)
 
typedef int(* RzAnalysisDiffFcnCallback) (RzAnalysis *analysis, RzList *fcns, RzList *fcns2)
 
typedef int(* RzAnalysisDiffEvalCallback) (RzAnalysis *analysis)
 
typedef int(* RzAnalysisEsilCB) (RzAnalysisEsil *esil)
 
typedef int(* RzAnalysisEsilLoopCB) (RzAnalysisEsil *esil, RzAnalysisOp *op)
 
typedef int(* RzAnalysisEsilTrapCB) (RzAnalysisEsil *esil, int trap_type, int trap_code)
 
typedef RzAnalysisILConfig *(* RzAnalysisILConfigCB) (RzAnalysis *analysis)
 
typedef struct rz_analysis_plugin_t RzAnalysisPlugin
 

Enumerations

enum  {
  RZ_ANALYSIS_DATA_TYPE_NULL = 0 , RZ_ANALYSIS_DATA_TYPE_UNKNOWN = 1 , RZ_ANALYSIS_DATA_TYPE_STRING = 2 , RZ_ANALYSIS_DATA_TYPE_WIDE_STRING = 3 ,
  RZ_ANALYSIS_DATA_TYPE_POINTER = 4 , RZ_ANALYSIS_DATA_TYPE_NUMBER = 5 , RZ_ANALYSIS_DATA_TYPE_INVALID = 6 , RZ_ANALYSIS_DATA_TYPE_HEADER = 7 ,
  RZ_ANALYSIS_DATA_TYPE_SEQUENCE = 8 , RZ_ANALYSIS_DATA_TYPE_PATTERN = 9
}
 
enum  {
  RZ_ANALYSIS_FQUALIFIER_NONE = 0 , RZ_ANALYSIS_FQUALIFIER_STATIC = 1 , RZ_ANALYSIS_FQUALIFIER_VOLATILE = 2 , RZ_ANALYSIS_FQUALIFIER_INLINE = 3 ,
  RZ_ANALYSIS_FQUALIFIER_NAKED = 4 , RZ_ANALYSIS_FQUALIFIER_VIRTUAL = 5
}
 
enum  {
  RZ_ANALYSIS_FCN_TYPE_NULL = 0 , RZ_ANALYSIS_FCN_TYPE_FCN = 1 << 0 , RZ_ANALYSIS_FCN_TYPE_LOC = 1 << 1 , RZ_ANALYSIS_FCN_TYPE_SYM = 1 << 2 ,
  RZ_ANALYSIS_FCN_TYPE_IMP = 1 << 3 , RZ_ANALYSIS_FCN_TYPE_INT = 1 << 4 , RZ_ANALYSIS_FCN_TYPE_ROOT = 1 << 5 , RZ_ANALYSIS_FCN_TYPE_ANY = -1
}
 
enum  { RZ_ANALYSIS_DIFF_TYPE_NULL = 0 , RZ_ANALYSIS_DIFF_TYPE_MATCH = 'm' , RZ_ANALYSIS_DIFF_TYPE_UNMATCH = 'u' }
 
enum  RzAnalysisMetaType {
  RZ_META_TYPE_ANY = -1 , RZ_META_TYPE_DATA = 'd' , RZ_META_TYPE_CODE = 'c' , RZ_META_TYPE_STRING = 's' ,
  RZ_META_TYPE_FORMAT = 'f' , RZ_META_TYPE_MAGIC = 'm' , RZ_META_TYPE_HIDE = 'h' , RZ_META_TYPE_COMMENT = 'C' ,
  RZ_META_TYPE_HIGHLIGHT = 'H' , RZ_META_TYPE_VARTYPE = 't'
}
 
enum  RzAnalysisOpFamily {
  RZ_ANALYSIS_OP_FAMILY_UNKNOWN = -1 , RZ_ANALYSIS_OP_FAMILY_CPU = 0 , RZ_ANALYSIS_OP_FAMILY_FPU , RZ_ANALYSIS_OP_FAMILY_MMX ,
  RZ_ANALYSIS_OP_FAMILY_SSE , RZ_ANALYSIS_OP_FAMILY_PRIV , RZ_ANALYSIS_OP_FAMILY_CRYPTO , RZ_ANALYSIS_OP_FAMILY_THREAD ,
  RZ_ANALYSIS_OP_FAMILY_VIRT , RZ_ANALYSIS_OP_FAMILY_SECURITY , RZ_ANALYSIS_OP_FAMILY_IO , RZ_ANALYSIS_OP_FAMILY_LAST
}
 
enum  RzAnalysisOpPrefix {
  RZ_ANALYSIS_OP_PREFIX_COND = 1 , RZ_ANALYSIS_OP_PREFIX_REP = 1 << 1 , RZ_ANALYSIS_OP_PREFIX_REPNE = 1 << 2 , RZ_ANALYSIS_OP_PREFIX_LOCK = 1 << 3 ,
  RZ_ANALYSIS_OP_PREFIX_LIKELY = 1 << 4 , RZ_ANALYSIS_OP_PREFIX_UNLIKELY = 1 << 5 , RZ_ANALYSIS_OP_PREFIX_HWLOOP_END = 1 << 6
}
 
enum  _RzAnalysisOpType {
  RZ_ANALYSIS_OP_TYPE_COND = 0x80000000 , RZ_ANALYSIS_OP_TYPE_REP = 0x40000000 , RZ_ANALYSIS_OP_TYPE_MEM = 0x20000000 , RZ_ANALYSIS_OP_TYPE_REG = 0x10000000 ,
  RZ_ANALYSIS_OP_TYPE_IND = 0x08000000 , RZ_ANALYSIS_OP_TYPE_NULL = 0 , RZ_ANALYSIS_OP_TYPE_JMP = 1 , RZ_ANALYSIS_OP_TYPE_UJMP = 2 ,
  RZ_ANALYSIS_OP_TYPE_RJMP = RZ_ANALYSIS_OP_TYPE_REG | RZ_ANALYSIS_OP_TYPE_UJMP , RZ_ANALYSIS_OP_TYPE_IJMP = RZ_ANALYSIS_OP_TYPE_IND | RZ_ANALYSIS_OP_TYPE_UJMP , RZ_ANALYSIS_OP_TYPE_IRJMP = RZ_ANALYSIS_OP_TYPE_IND | RZ_ANALYSIS_OP_TYPE_REG | RZ_ANALYSIS_OP_TYPE_UJMP , RZ_ANALYSIS_OP_TYPE_CJMP = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_JMP ,
  RZ_ANALYSIS_OP_TYPE_RCJMP = RZ_ANALYSIS_OP_TYPE_REG | RZ_ANALYSIS_OP_TYPE_CJMP , RZ_ANALYSIS_OP_TYPE_MJMP = RZ_ANALYSIS_OP_TYPE_MEM | RZ_ANALYSIS_OP_TYPE_JMP , RZ_ANALYSIS_OP_TYPE_MCJMP = RZ_ANALYSIS_OP_TYPE_MEM | RZ_ANALYSIS_OP_TYPE_CJMP , RZ_ANALYSIS_OP_TYPE_UCJMP = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_UJMP ,
  RZ_ANALYSIS_OP_TYPE_CALL = 3 , RZ_ANALYSIS_OP_TYPE_UCALL = 4 , RZ_ANALYSIS_OP_TYPE_RCALL = RZ_ANALYSIS_OP_TYPE_REG | RZ_ANALYSIS_OP_TYPE_UCALL , RZ_ANALYSIS_OP_TYPE_ICALL = RZ_ANALYSIS_OP_TYPE_IND | RZ_ANALYSIS_OP_TYPE_UCALL ,
  RZ_ANALYSIS_OP_TYPE_IRCALL = RZ_ANALYSIS_OP_TYPE_IND | RZ_ANALYSIS_OP_TYPE_REG | RZ_ANALYSIS_OP_TYPE_UCALL , RZ_ANALYSIS_OP_TYPE_CCALL = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_CALL , RZ_ANALYSIS_OP_TYPE_UCCALL = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_UCALL , RZ_ANALYSIS_OP_TYPE_RET = 5 ,
  RZ_ANALYSIS_OP_TYPE_CRET = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_RET , RZ_ANALYSIS_OP_TYPE_ILL = 6 , RZ_ANALYSIS_OP_TYPE_UNK = 7 , RZ_ANALYSIS_OP_TYPE_NOP = 8 ,
  RZ_ANALYSIS_OP_TYPE_MOV = 9 , RZ_ANALYSIS_OP_TYPE_CMOV = 9 | RZ_ANALYSIS_OP_TYPE_COND , RZ_ANALYSIS_OP_TYPE_TRAP = 10 , RZ_ANALYSIS_OP_TYPE_SWI = 11 ,
  RZ_ANALYSIS_OP_TYPE_CSWI = 11 | RZ_ANALYSIS_OP_TYPE_COND , RZ_ANALYSIS_OP_TYPE_UPUSH = 12 , RZ_ANALYSIS_OP_TYPE_RPUSH = RZ_ANALYSIS_OP_TYPE_UPUSH | RZ_ANALYSIS_OP_TYPE_REG , RZ_ANALYSIS_OP_TYPE_PUSH = 13 ,
  RZ_ANALYSIS_OP_TYPE_POP = 14 , RZ_ANALYSIS_OP_TYPE_CMP = 15 , RZ_ANALYSIS_OP_TYPE_ACMP = 16 , RZ_ANALYSIS_OP_TYPE_ADD = 17 ,
  RZ_ANALYSIS_OP_TYPE_SUB = 18 , RZ_ANALYSIS_OP_TYPE_IO = 19 , RZ_ANALYSIS_OP_TYPE_MUL = 20 , RZ_ANALYSIS_OP_TYPE_DIV = 21 ,
  RZ_ANALYSIS_OP_TYPE_SHR = 22 , RZ_ANALYSIS_OP_TYPE_SHL = 23 , RZ_ANALYSIS_OP_TYPE_SAL = 24 , RZ_ANALYSIS_OP_TYPE_SAR = 25 ,
  RZ_ANALYSIS_OP_TYPE_OR = 26 , RZ_ANALYSIS_OP_TYPE_AND = 27 , RZ_ANALYSIS_OP_TYPE_XOR = 28 , RZ_ANALYSIS_OP_TYPE_NOR = 29 ,
  RZ_ANALYSIS_OP_TYPE_NOT = 30 , RZ_ANALYSIS_OP_TYPE_STORE = 31 , RZ_ANALYSIS_OP_TYPE_LOAD = 32 , RZ_ANALYSIS_OP_TYPE_LEA = 33 ,
  RZ_ANALYSIS_OP_TYPE_LEAVE = 34 , RZ_ANALYSIS_OP_TYPE_ROR = 35 , RZ_ANALYSIS_OP_TYPE_ROL = 36 , RZ_ANALYSIS_OP_TYPE_XCHG = 37 ,
  RZ_ANALYSIS_OP_TYPE_MOD = 38 , RZ_ANALYSIS_OP_TYPE_SWITCH = 39 , RZ_ANALYSIS_OP_TYPE_CASE = 40 , RZ_ANALYSIS_OP_TYPE_LENGTH = 41 ,
  RZ_ANALYSIS_OP_TYPE_CAST = 42 , RZ_ANALYSIS_OP_TYPE_NEW = 43 , RZ_ANALYSIS_OP_TYPE_ABS = 44 , RZ_ANALYSIS_OP_TYPE_CPL = 45 ,
  RZ_ANALYSIS_OP_TYPE_CRYPTO = 46 , RZ_ANALYSIS_OP_TYPE_SYNC = 47
}
 
enum  RzAnalysisOpMask {
  RZ_ANALYSIS_OP_MASK_BASIC = 0 , RZ_ANALYSIS_OP_MASK_ESIL = (1 << 0) , RZ_ANALYSIS_OP_MASK_VAL = (1 << 1) , RZ_ANALYSIS_OP_MASK_HINT = (1 << 2) ,
  RZ_ANALYSIS_OP_MASK_OPEX = (1 << 3) , RZ_ANALYSIS_OP_MASK_DISASM = (1 << 4) , RZ_ANALYSIS_OP_MASK_IL = (1 << 5) , RZ_ANALYSIS_OP_MASK_ALL = RZ_ANALYSIS_OP_MASK_ESIL | RZ_ANALYSIS_OP_MASK_VAL | RZ_ANALYSIS_OP_MASK_HINT | RZ_ANALYSIS_OP_MASK_OPEX | RZ_ANALYSIS_OP_MASK_DISASM | RZ_ANALYSIS_OP_MASK_IL
}
 
enum  _RzAnalysisVarScope { RZ_ANALYSIS_VAR_SCOPE_LOCAL = 0x01 }
 
enum  RzAnalysisStackOp {
  RZ_ANALYSIS_STACK_NULL = 0 , RZ_ANALYSIS_STACK_NOP , RZ_ANALYSIS_STACK_INC , RZ_ANALYSIS_STACK_GET ,
  RZ_ANALYSIS_STACK_SET , RZ_ANALYSIS_STACK_RESET , RZ_ANALYSIS_STACK_ALIGN
}
 
enum  { RZ_ANALYSIS_REFLINE_TYPE_UTF8 = 1 , RZ_ANALYSIS_REFLINE_TYPE_WIDE = 2 , RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_BEFORE = 4 , RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_AFTER = 8 }
 
enum  RzAnalysisBBEndCause {
  RZ_ANALYSIS_RET_NOP = 0 , RZ_ANALYSIS_RET_ERROR = -1 , RZ_ANALYSIS_RET_END = -4 , RZ_ANALYSIS_RET_BRANCH = -5 ,
  RZ_ANALYSIS_RET_COND = -6
}
 
enum  RzAnalysisCPPABI { RZ_ANALYSIS_CPP_ABI_ITANIUM = 0 , RZ_ANALYSIS_CPP_ABI_MSVC }
 
enum  rz_analysis_addr_hint_type_t {
  RZ_ANALYSIS_ADDR_HINT_TYPE_IMMBASE , RZ_ANALYSIS_ADDR_HINT_TYPE_JUMP , RZ_ANALYSIS_ADDR_HINT_TYPE_FAIL , RZ_ANALYSIS_ADDR_HINT_TYPE_STACKFRAME ,
  RZ_ANALYSIS_ADDR_HINT_TYPE_PTR , RZ_ANALYSIS_ADDR_HINT_TYPE_NWORD , RZ_ANALYSIS_ADDR_HINT_TYPE_RET , RZ_ANALYSIS_ADDR_HINT_TYPE_NEW_BITS ,
  RZ_ANALYSIS_ADDR_HINT_TYPE_SIZE , RZ_ANALYSIS_ADDR_HINT_TYPE_SYNTAX , RZ_ANALYSIS_ADDR_HINT_TYPE_OPTYPE , RZ_ANALYSIS_ADDR_HINT_TYPE_OPCODE ,
  RZ_ANALYSIS_ADDR_HINT_TYPE_TYPE_OFFSET , RZ_ANALYSIS_ADDR_HINT_TYPE_ESIL , RZ_ANALYSIS_ADDR_HINT_TYPE_HIGH , RZ_ANALYSIS_ADDR_HINT_TYPE_VAL
}
 
enum  RzAnalysisVarKind { RZ_ANALYSIS_VAR_KIND_REG = 'r' , RZ_ANALYSIS_VAR_KIND_BPV = 'b' , RZ_ANALYSIS_VAR_KIND_SPV = 's' }
 
enum  RzAnalysisVarAccessType { RZ_ANALYSIS_VAR_ACCESS_TYPE_PTR = 0 , RZ_ANALYSIS_VAR_ACCESS_TYPE_READ = (1 << 0) , RZ_ANALYSIS_VAR_ACCESS_TYPE_WRITE = (1 << 1) }
 
enum  RzAnalysisValueAccess { RZ_ANALYSIS_ACC_UNKNOWN = 0 , RZ_ANALYSIS_ACC_R = (1 << 0) , RZ_ANALYSIS_ACC_W = (1 << 1) }
 
enum  RzAnalysisValueType { RZ_ANALYSIS_VAL_UNK , RZ_ANALYSIS_VAL_REG , RZ_ANALYSIS_VAL_MEM , RZ_ANALYSIS_VAL_IMM }
 
enum  RzAnalysisOpDirection { RZ_ANALYSIS_OP_DIR_READ = 1 , RZ_ANALYSIS_OP_DIR_WRITE = 2 , RZ_ANALYSIS_OP_DIR_EXEC = 4 , RZ_ANALYSIS_OP_DIR_REF = 8 }
 
enum  rz_analysis_data_type_t {
  RZ_ANALYSIS_DATATYPE_NULL = 0 , RZ_ANALYSIS_DATATYPE_ARRAY , RZ_ANALYSIS_DATATYPE_OBJECT , RZ_ANALYSIS_DATATYPE_STRING ,
  RZ_ANALYSIS_DATATYPE_CLASS , RZ_ANALYSIS_DATATYPE_BOOLEAN , RZ_ANALYSIS_DATATYPE_INT16 , RZ_ANALYSIS_DATATYPE_INT32 ,
  RZ_ANALYSIS_DATATYPE_INT64 , RZ_ANALYSIS_DATATYPE_FLOAT
}
 
enum  RzAnalysisXRefType {
  RZ_ANALYSIS_XREF_TYPE_NULL = 0 , RZ_ANALYSIS_XREF_TYPE_CODE = 'c' , RZ_ANALYSIS_XREF_TYPE_CALL = 'C' , RZ_ANALYSIS_XREF_TYPE_DATA = 'd' ,
  RZ_ANALYSIS_XREF_TYPE_STRING = 's'
}
 
enum  {
  RZ_ANALYSIS_ESIL_FLAG_ZERO = 1 , RZ_ANALYSIS_ESIL_FLAG_CARRY = 2 , RZ_ANALYSIS_ESIL_FLAG_OVERFLOW = 4 , RZ_ANALYSIS_ESIL_FLAG_PARITY = 8 ,
  RZ_ANALYSIS_ESIL_FLAG_SIGN = 16
}
 
enum  {
  RZ_ANALYSIS_TRAP_NONE = 0 , RZ_ANALYSIS_TRAP_UNHANDLED = 1 , RZ_ANALYSIS_TRAP_BREAKPOINT = 2 , RZ_ANALYSIS_TRAP_DIVBYZERO = 3 ,
  RZ_ANALYSIS_TRAP_WRITE_ERR = 4 , RZ_ANALYSIS_TRAP_READ_ERR = 5 , RZ_ANALYSIS_TRAP_EXEC_ERR = 6 , RZ_ANALYSIS_TRAP_INVALID = 7 ,
  RZ_ANALYSIS_TRAP_UNALIGNED = 8 , RZ_ANALYSIS_TRAP_TODO = 9 , RZ_ANALYSIS_TRAP_HALT = 10
}
 
enum  { RZ_ANALYSIS_ESIL_PARM_INVALID = 0 , RZ_ANALYSIS_ESIL_PARM_REG , RZ_ANALYSIS_ESIL_PARM_NUM }
 
enum  RzAnalysisILStepResult { RZ_ANALYSIS_IL_STEP_RESULT_SUCCESS , RZ_ANALYSIS_IL_STEP_RESULT_NOT_SET_UP , RZ_ANALYSIS_IL_STEP_IL_RUNTIME_ERROR , RZ_ANALYSIS_IL_STEP_INVALID_OP }
 
enum  {
  RZ_ANALYSIS_ESIL_OP_TYPE_UNKNOWN = 0x1 , RZ_ANALYSIS_ESIL_OP_TYPE_CONTROL_FLOW , RZ_ANALYSIS_ESIL_OP_TYPE_MEM_READ = 0x4 , RZ_ANALYSIS_ESIL_OP_TYPE_MEM_WRITE = 0x8 ,
  RZ_ANALYSIS_ESIL_OP_TYPE_REG_WRITE = 0x10 , RZ_ANALYSIS_ESIL_OP_TYPE_MATH = 0x20 , RZ_ANALYSIS_ESIL_OP_TYPE_CUSTOM = 0x40
}
 
enum  RzAnalysisEsilBlockEnterType { RZ_ANALYSIS_ESIL_BLOCK_ENTER_NORMAL = 0 , RZ_ANALYSIS_ESIL_BLOCK_ENTER_TRUE , RZ_ANALYSIS_ESIL_BLOCK_ENTER_FALSE , RZ_ANALYSIS_ESIL_BLOCK_ENTER_GLUE }
 

Functions

 RZ_LIB_VERSION_HEADER (rz_analysis)
 
RZ_API const char * rz_analysis_ref_type_tostring (RzAnalysisXRefType t)
 
RZ_API void rz_analysis_esil_sources_init (ANALYSIS_ESIL *esil)
 
RZ_API ut32 rz_analysis_esil_load_source (ANALYSIS_ESIL *esil, const char *path)
 
RZ_API void * rz_analysis_esil_get_source (ANALYSIS_ESIL *esil, ut32 src_id)
 
RZ_API bool rz_analysis_esil_claim_source (ANALYSIS_ESIL *esil, ut32 src_id)
 
RZ_API void rz_analysis_esil_release_source (ANALYSIS_ESIL *esil, ut32 src_id)
 
RZ_API void rz_analysis_esil_sources_fini (ANALYSIS_ESIL *esil)
 

Macro Definition Documentation

◆ ANALYSIS_ESIL

#define ANALYSIS_ESIL   struct rz_analysis_esil_t

Definition at line 977 of file rz_analysis.h.

◆ ARGPREFIX

#define ARGPREFIX   "arg"

Definition at line 709 of file rz_analysis.h.

◆ ESIL_INTERNAL_PREFIX

#define ESIL_INTERNAL_PREFIX   '$'

Definition at line 975 of file rz_analysis.h.

◆ ESIL_STACK_NAME

#define ESIL_STACK_NAME   "esil.ram"

Definition at line 976 of file rz_analysis.h.

◆ esilprintf

#define esilprintf (   op,
  fmt,
  ... 
)    rz_strbuf_setf(&op->esil, fmt, ##__VA_ARGS__)

Definition at line 29 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_ASCII

#define RZ_ANALYSIS_ADDR_TYPE_ASCII   1 << 10

Definition at line 95 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_EXEC

#define RZ_ANALYSIS_ADDR_TYPE_EXEC   1

Definition at line 85 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_FLAG

#define RZ_ANALYSIS_ADDR_TYPE_FLAG   1 << 3

Definition at line 88 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_FUNC

#define RZ_ANALYSIS_ADDR_TYPE_FUNC   1 << 4

Definition at line 89 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_HEAP

#define RZ_ANALYSIS_ADDR_TYPE_HEAP   1 << 5

Definition at line 90 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_LIBRARY

#define RZ_ANALYSIS_ADDR_TYPE_LIBRARY   1 << 9

Definition at line 94 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_PROGRAM

#define RZ_ANALYSIS_ADDR_TYPE_PROGRAM   1 << 8

Definition at line 93 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_READ

#define RZ_ANALYSIS_ADDR_TYPE_READ   1 << 1

Definition at line 86 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_REG

#define RZ_ANALYSIS_ADDR_TYPE_REG   1 << 7

Definition at line 92 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_SEQUENCE

#define RZ_ANALYSIS_ADDR_TYPE_SEQUENCE   1 << 11

Definition at line 96 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_STACK

#define RZ_ANALYSIS_ADDR_TYPE_STACK   1 << 6

Definition at line 91 of file rz_analysis.h.

◆ RZ_ANALYSIS_ADDR_TYPE_WRITE

#define RZ_ANALYSIS_ADDR_TYPE_WRITE   1 << 2

Definition at line 87 of file rz_analysis.h.

◆ RZ_ANALYSIS_ARCHINFO_ALIGN

#define RZ_ANALYSIS_ARCHINFO_ALIGN   2

Definition at line 100 of file rz_analysis.h.

◆ RZ_ANALYSIS_ARCHINFO_DATA_ALIGN

#define RZ_ANALYSIS_ARCHINFO_DATA_ALIGN   4

Definition at line 101 of file rz_analysis.h.

◆ RZ_ANALYSIS_ARCHINFO_MAX_OP_SIZE

#define RZ_ANALYSIS_ARCHINFO_MAX_OP_SIZE   1

Definition at line 99 of file rz_analysis.h.

◆ RZ_ANALYSIS_ARCHINFO_MIN_OP_SIZE

#define RZ_ANALYSIS_ARCHINFO_MIN_OP_SIZE   0

Definition at line 98 of file rz_analysis.h.

◆ RZ_ANALYSIS_CC_MAXARG

#define RZ_ANALYSIS_CC_MAXARG   16

Definition at line 189 of file rz_analysis.h.

◆ RZ_ANALYSIS_DIFF_THRESHOLD

#define RZ_ANALYSIS_DIFF_THRESHOLD   (0.5)

Definition at line 202 of file rz_analysis.h.

◆ RZ_ANALYSIS_ESIL_GOTO_LIMIT

#define RZ_ANALYSIS_ESIL_GOTO_LIMIT   4096

Definition at line 504 of file rz_analysis.h.

◆ RZ_ANALYSIS_GET_NAME

#define RZ_ANALYSIS_GET_NAME (   x,
  y,
 
)     (x && x->binb.bin && x->binb.get_name) ? x->binb.get_name(x->binb.bin, y, z) : NULL

Definition at line 108 of file rz_analysis.h.

◆ RZ_ANALYSIS_GET_OFFSET

#define RZ_ANALYSIS_GET_OFFSET (   x,
  y,
 
)     (x && x->binb.bin && x->binb.get_offset) ? x->binb.get_offset(x->binb.bin, y, z) : -1

Definition at line 105 of file rz_analysis.h.

◆ RZ_ANALYSIS_OP_HINT_MASK

#define RZ_ANALYSIS_OP_HINT_MASK   0xf0000000

Definition at line 359 of file rz_analysis.h.

◆ RZ_ANALYSIS_OP_TYPE_MASK

#define RZ_ANALYSIS_OP_TYPE_MASK   0x8000ffff

Definition at line 358 of file rz_analysis.h.

◆ RZ_TYPE_COND_SINGLE

#define RZ_TYPE_COND_SINGLE (   x)    (!x->arg[1] || x->arg[0] == x->arg[1])

Definition at line 854 of file rz_analysis.h.

◆ USE_VARSUBS

#define USE_VARSUBS   0

Definition at line 11 of file rz_analysis.h.

◆ VARPREFIX

#define VARPREFIX   "var"

Definition at line 708 of file rz_analysis.h.

Typedef Documentation

◆ RHintCb

◆ RzAnalysis

typedef struct rz_analysis_t RzAnalysis

◆ RzAnalysisAddrHintRecord

◆ RzAnalysisAddrHintType

◆ RzAnalysisAttr

Definition at line 35 of file rz_analysis.h.

◆ RzAnalysisBind

◆ RzAnalysisBlock

◆ RzAnalysisCallbacks

◆ RzAnalysisCaseOp

◆ RzAnalysisCond

◆ RzAnalysisCycleFrame

◆ RzAnalysisCycleHook

◆ RzAnalysisDataType

◆ RzAnalysisDiff

◆ RzAnalysisDiffBBCallback

typedef int(* RzAnalysisDiffBBCallback) (RzAnalysis *analysis, RzAnalysisFunction *fcn, RzAnalysisFunction *fcn2)

Definition at line 1223 of file rz_analysis.h.

◆ RzAnalysisDiffEvalCallback

typedef int(* RzAnalysisDiffEvalCallback) (RzAnalysis *analysis)

Definition at line 1225 of file rz_analysis.h.

◆ RzAnalysisDiffFcnCallback

typedef int(* RzAnalysisDiffFcnCallback) (RzAnalysis *analysis, RzList *fcns, RzList *fcns2)

Definition at line 1224 of file rz_analysis.h.

◆ RzAnalysisDwarfContext

◆ RzAnalysisEsil

◆ RzAnalysisEsilBB

◆ RzAnalysisEsilCallbacks

◆ RzAnalysisEsilCB

typedef int(* RzAnalysisEsilCB) (RzAnalysisEsil *esil)

Definition at line 1227 of file rz_analysis.h.

◆ RzAnalysisEsilEOffset

◆ RzAnalysisEsilHookRegWriteCB

typedef int(* RzAnalysisEsilHookRegWriteCB) (ANALYSIS_ESIL *esil, const char *name, ut64 *val)

Definition at line 1025 of file rz_analysis.h.

◆ RzAnalysisEsilInterrupt

◆ RzAnalysisEsilInterruptCB

typedef bool(* RzAnalysisEsilInterruptCB) (ANALYSIS_ESIL *esil, ut32 interrupt, void *user)

Definition at line 992 of file rz_analysis.h.

◆ RzAnalysisEsilInterruptHandler

◆ RzAnalysisEsilLoopCB

typedef int(* RzAnalysisEsilLoopCB) (RzAnalysisEsil *esil, RzAnalysisOp *op)

Definition at line 1228 of file rz_analysis.h.

◆ RzAnalysisEsilMemChange

◆ RzAnalysisEsilOp

◆ RzAnalysisEsilOpCb

typedef bool(* RzAnalysisEsilOpCb) (RzAnalysisEsil *esil)

Definition at line 1187 of file rz_analysis.h.

◆ RzAnalysisEsilRegChange

◆ RzAnalysisEsilSource

◆ RzAnalysisEsilTrace

◆ RzAnalysisEsilTrapCB

typedef int(* RzAnalysisEsilTrapCB) (RzAnalysisEsil *esil, int trap_type, int trap_code)

Definition at line 1229 of file rz_analysis.h.

◆ RzAnalysisEsilWord

◆ RzAnalysisFcnMeta

◆ RzAnalysisFPBBCallback

typedef int(* RzAnalysisFPBBCallback) (RzAnalysis *a, RzAnalysisBlock *bb)

Definition at line 1221 of file rz_analysis.h.

◆ RzAnalysisFPFcnCallback

typedef int(* RzAnalysisFPFcnCallback) (RzAnalysis *a, RzAnalysisFunction *fcn)

Definition at line 1222 of file rz_analysis.h.

◆ RzAnalysisFuncArg

◆ RzAnalysisFunction

◆ RzAnalysisGetFcnIn

typedef RzAnalysisFunction*(* RzAnalysisGetFcnIn) (RzAnalysis *analysis, ut64 addr, int type)

Definition at line 691 of file rz_analysis.h.

◆ RzAnalysisGetHint

typedef RzAnalysisHint*(* RzAnalysisGetHint) (RzAnalysis *analysis, ut64 addr)

Definition at line 692 of file rz_analysis.h.

◆ RzAnalysisHint

◆ RzAnalysisILConfig

Description of the global context of an RzAnalysisILVM.

This defines all information needed to initialize an IL vm in order to run in a declarative way, in particular:

  • Size of the program counter: given explicitly in pc_size
  • Endian: given explicitly in big_endian
  • Memories: currently always one memory with index 0 bound against IO, with key size given by mem_key_size and value size of 8
  • Registers: given explicitly in reg_bindings or derived from the register profile with rz_il_reg_binding_derive()
  • Labels: given explicitly in labels
  • Initial State of Variables: optionally given in init_state

◆ RzAnalysisILConfigCB

typedef RzAnalysisILConfig*(* RzAnalysisILConfigCB) (RzAnalysis *analysis)

Definition at line 1231 of file rz_analysis.h.

◆ RzAnalysisILInitState

Description of an initial state of an RzAnalysisILVM.

This may be used by an analysis plugin to communicate how to initialize variables/registers for a clean vm. Everything unspecified by this may be initialized to anything (for example whatever contents the RzReg currently has).

◆ RzAnalysisILInitStateVar

Description of the contents of a single IL variable.

◆ RzAnalysisILVM

Definition at line 35 of file rz_analysis.h.

◆ RzAnalysisLabelAt

typedef const char*(* RzAnalysisLabelAt) (RzAnalysisFunction *fcn, ut64)

Definition at line 700 of file rz_analysis.h.

◆ RzAnalysisLiftedILOp

Definition at line 809 of file rz_analysis.h.

◆ RzAnalysisMetaItem

◆ RzAnalysisOp

◆ RzAnalysisOpCallback

typedef int(* RzAnalysisOpCallback) (RzAnalysis *a, RzAnalysisOp *op, ut64 addr, const ut8 *data, int len, RzAnalysisOpMask mask)

Definition at line 1217 of file rz_analysis.h.

◆ RzAnalysisOptions

◆ RzAnalysisPlugin

◆ RzAnalysisRange

◆ RzAnalysisRefline

◆ RzAnalysisRefStr

◆ RzAnalysisRegProfCallback

typedef bool(* RzAnalysisRegProfCallback) (RzAnalysis *a)

Definition at line 1219 of file rz_analysis.h.

◆ RzAnalysisRegProfGetCallback

typedef char*(* RzAnalysisRegProfGetCallback) (RzAnalysis *a)

Definition at line 1220 of file rz_analysis.h.

◆ RzAnalysisRzilMemChange

◆ RzAnalysisRzilRegChange

◆ RzAnalysisRzilTrace

Definition at line 1099 of file rz_analysis.h.

◆ RzAnalysisSwitchOp

◆ RzAnalysisTaskItem

◆ RzAnalysisType

Definition at line 35 of file rz_analysis.h.

◆ RzAnalysisTypeAlloca

◆ RzAnalysisTypeArray

◆ RzAnalysisTypePtr

◆ RzAnalysisTypeStruct

Definition at line 35 of file rz_analysis.h.

◆ RzAnalysisTypeUnion

◆ RzAnalysisTypeVar

◆ RzAnalysisValue

◆ RzAnalysisVar

◆ RzAnalysisVarAccess

◆ RzAnalysisVarField

◆ RzAnalysisVarGlobal

Global variables.

◆ RzAnalysisXRef

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_DATA_TYPE_NULL 
RZ_ANALYSIS_DATA_TYPE_UNKNOWN 
RZ_ANALYSIS_DATA_TYPE_STRING 
RZ_ANALYSIS_DATA_TYPE_WIDE_STRING 
RZ_ANALYSIS_DATA_TYPE_POINTER 
RZ_ANALYSIS_DATA_TYPE_NUMBER 
RZ_ANALYSIS_DATA_TYPE_INVALID 
RZ_ANALYSIS_DATA_TYPE_HEADER 
RZ_ANALYSIS_DATA_TYPE_SEQUENCE 
RZ_ANALYSIS_DATA_TYPE_PATTERN 

Definition at line 71 of file rz_analysis.h.

71  {
82 };
@ RZ_ANALYSIS_DATA_TYPE_INVALID
Definition: rz_analysis.h:78
@ RZ_ANALYSIS_DATA_TYPE_PATTERN
Definition: rz_analysis.h:81
@ RZ_ANALYSIS_DATA_TYPE_UNKNOWN
Definition: rz_analysis.h:73
@ RZ_ANALYSIS_DATA_TYPE_NUMBER
Definition: rz_analysis.h:77
@ RZ_ANALYSIS_DATA_TYPE_STRING
Definition: rz_analysis.h:74
@ RZ_ANALYSIS_DATA_TYPE_WIDE_STRING
Definition: rz_analysis.h:75
@ RZ_ANALYSIS_DATA_TYPE_HEADER
Definition: rz_analysis.h:79
@ RZ_ANALYSIS_DATA_TYPE_POINTER
Definition: rz_analysis.h:76
@ RZ_ANALYSIS_DATA_TYPE_SEQUENCE
Definition: rz_analysis.h:80
@ RZ_ANALYSIS_DATA_TYPE_NULL
Definition: rz_analysis.h:72

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_FQUALIFIER_NONE 
RZ_ANALYSIS_FQUALIFIER_STATIC 
RZ_ANALYSIS_FQUALIFIER_VOLATILE 
RZ_ANALYSIS_FQUALIFIER_INLINE 
RZ_ANALYSIS_FQUALIFIER_NAKED 
RZ_ANALYSIS_FQUALIFIER_VIRTUAL 

Definition at line 180 of file rz_analysis.h.

180  {
187 };
@ RZ_ANALYSIS_FQUALIFIER_VIRTUAL
Definition: rz_analysis.h:186
@ RZ_ANALYSIS_FQUALIFIER_STATIC
Definition: rz_analysis.h:182
@ RZ_ANALYSIS_FQUALIFIER_INLINE
Definition: rz_analysis.h:184
@ RZ_ANALYSIS_FQUALIFIER_VOLATILE
Definition: rz_analysis.h:183
@ RZ_ANALYSIS_FQUALIFIER_NAKED
Definition: rz_analysis.h:185
@ RZ_ANALYSIS_FQUALIFIER_NONE
Definition: rz_analysis.h:181

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_FCN_TYPE_NULL 
RZ_ANALYSIS_FCN_TYPE_FCN 
RZ_ANALYSIS_FCN_TYPE_LOC 
RZ_ANALYSIS_FCN_TYPE_SYM 
RZ_ANALYSIS_FCN_TYPE_IMP 
RZ_ANALYSIS_FCN_TYPE_INT 
RZ_ANALYSIS_FCN_TYPE_ROOT 
RZ_ANALYSIS_FCN_TYPE_ANY 

Definition at line 191 of file rz_analysis.h.

191  {
193  RZ_ANALYSIS_FCN_TYPE_FCN = 1 << 0,
194  RZ_ANALYSIS_FCN_TYPE_LOC = 1 << 1,
195  RZ_ANALYSIS_FCN_TYPE_SYM = 1 << 2,
196  RZ_ANALYSIS_FCN_TYPE_IMP = 1 << 3,
197  RZ_ANALYSIS_FCN_TYPE_INT = 1 << 4, /* privileged function - ends with iret/reti/.. */
198  RZ_ANALYSIS_FCN_TYPE_ROOT = 1 << 5, /* matching flag */
199  RZ_ANALYSIS_FCN_TYPE_ANY = -1 /* all the bits set */
200 };
@ RZ_ANALYSIS_FCN_TYPE_INT
Definition: rz_analysis.h:197
@ RZ_ANALYSIS_FCN_TYPE_SYM
Definition: rz_analysis.h:195
@ RZ_ANALYSIS_FCN_TYPE_IMP
Definition: rz_analysis.h:196
@ RZ_ANALYSIS_FCN_TYPE_ANY
Definition: rz_analysis.h:199
@ RZ_ANALYSIS_FCN_TYPE_LOC
Definition: rz_analysis.h:194
@ RZ_ANALYSIS_FCN_TYPE_NULL
Definition: rz_analysis.h:192
@ RZ_ANALYSIS_FCN_TYPE_ROOT
Definition: rz_analysis.h:198
@ RZ_ANALYSIS_FCN_TYPE_FCN
Definition: rz_analysis.h:193

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_DIFF_TYPE_NULL 
RZ_ANALYSIS_DIFF_TYPE_MATCH 
RZ_ANALYSIS_DIFF_TYPE_UNMATCH 

Definition at line 204 of file rz_analysis.h.

204  {
208 };
@ RZ_ANALYSIS_DIFF_TYPE_MATCH
Definition: rz_analysis.h:206
@ RZ_ANALYSIS_DIFF_TYPE_UNMATCH
Definition: rz_analysis.h:207
@ RZ_ANALYSIS_DIFF_TYPE_NULL
Definition: rz_analysis.h:205

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_REFLINE_TYPE_UTF8 
RZ_ANALYSIS_REFLINE_TYPE_WIDE 
RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_BEFORE 
RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_AFTER 

Definition at line 464 of file rz_analysis.h.

464  {
466  RZ_ANALYSIS_REFLINE_TYPE_WIDE = 2, /* reflines have a space between them */
467  RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_BEFORE = 4, /* do not consider starts/ends of
468  * reflines (used for comment lines before disasm) */
469  RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_AFTER = 8 /* as above but for lines after disasm */
470 };
@ RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_BEFORE
Definition: rz_analysis.h:467
@ RZ_ANALYSIS_REFLINE_TYPE_MIDDLE_AFTER
Definition: rz_analysis.h:469
@ RZ_ANALYSIS_REFLINE_TYPE_WIDE
Definition: rz_analysis.h:466
@ RZ_ANALYSIS_REFLINE_TYPE_UTF8
Definition: rz_analysis.h:465

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_ESIL_FLAG_ZERO 
RZ_ANALYSIS_ESIL_FLAG_CARRY 
RZ_ANALYSIS_ESIL_FLAG_OVERFLOW 
RZ_ANALYSIS_ESIL_FLAG_PARITY 
RZ_ANALYSIS_ESIL_FLAG_SIGN 

Definition at line 940 of file rz_analysis.h.

940  {
946  // ...
947 };
@ RZ_ANALYSIS_ESIL_FLAG_SIGN
Definition: rz_analysis.h:945
@ RZ_ANALYSIS_ESIL_FLAG_ZERO
Definition: rz_analysis.h:941
@ RZ_ANALYSIS_ESIL_FLAG_CARRY
Definition: rz_analysis.h:942
@ RZ_ANALYSIS_ESIL_FLAG_OVERFLOW
Definition: rz_analysis.h:943
@ RZ_ANALYSIS_ESIL_FLAG_PARITY
Definition: rz_analysis.h:944

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_TRAP_NONE 
RZ_ANALYSIS_TRAP_UNHANDLED 
RZ_ANALYSIS_TRAP_BREAKPOINT 
RZ_ANALYSIS_TRAP_DIVBYZERO 
RZ_ANALYSIS_TRAP_WRITE_ERR 
RZ_ANALYSIS_TRAP_READ_ERR 
RZ_ANALYSIS_TRAP_EXEC_ERR 
RZ_ANALYSIS_TRAP_INVALID 
RZ_ANALYSIS_TRAP_UNALIGNED 
RZ_ANALYSIS_TRAP_TODO 
RZ_ANALYSIS_TRAP_HALT 

Definition at line 949 of file rz_analysis.h.

949  {
961 };
@ RZ_ANALYSIS_TRAP_NONE
Definition: rz_analysis.h:950
@ RZ_ANALYSIS_TRAP_UNHANDLED
Definition: rz_analysis.h:951
@ RZ_ANALYSIS_TRAP_EXEC_ERR
Definition: rz_analysis.h:956
@ RZ_ANALYSIS_TRAP_DIVBYZERO
Definition: rz_analysis.h:953
@ RZ_ANALYSIS_TRAP_HALT
Definition: rz_analysis.h:960
@ RZ_ANALYSIS_TRAP_INVALID
Definition: rz_analysis.h:957
@ RZ_ANALYSIS_TRAP_TODO
Definition: rz_analysis.h:959
@ RZ_ANALYSIS_TRAP_WRITE_ERR
Definition: rz_analysis.h:954
@ RZ_ANALYSIS_TRAP_READ_ERR
Definition: rz_analysis.h:955
@ RZ_ANALYSIS_TRAP_UNALIGNED
Definition: rz_analysis.h:958
@ RZ_ANALYSIS_TRAP_BREAKPOINT
Definition: rz_analysis.h:952

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_ESIL_PARM_INVALID 
RZ_ANALYSIS_ESIL_PARM_REG 
RZ_ANALYSIS_ESIL_PARM_NUM 

Definition at line 963 of file rz_analysis.h.

963  {
967 };
@ RZ_ANALYSIS_ESIL_PARM_NUM
Definition: rz_analysis.h:966
@ RZ_ANALYSIS_ESIL_PARM_INVALID
Definition: rz_analysis.h:964
@ RZ_ANALYSIS_ESIL_PARM_REG
Definition: rz_analysis.h:965

◆ anonymous enum

anonymous enum
Enumerator
RZ_ANALYSIS_ESIL_OP_TYPE_UNKNOWN 
RZ_ANALYSIS_ESIL_OP_TYPE_CONTROL_FLOW 
RZ_ANALYSIS_ESIL_OP_TYPE_MEM_READ 
RZ_ANALYSIS_ESIL_OP_TYPE_MEM_WRITE 
RZ_ANALYSIS_ESIL_OP_TYPE_REG_WRITE 
RZ_ANALYSIS_ESIL_OP_TYPE_MATH 
RZ_ANALYSIS_ESIL_OP_TYPE_CUSTOM 

Definition at line 1177 of file rz_analysis.h.

1177  {
1185 };
@ RZ_ANALYSIS_ESIL_OP_TYPE_MATH
Definition: rz_analysis.h:1183
@ RZ_ANALYSIS_ESIL_OP_TYPE_MEM_WRITE
Definition: rz_analysis.h:1181
@ RZ_ANALYSIS_ESIL_OP_TYPE_UNKNOWN
Definition: rz_analysis.h:1178
@ RZ_ANALYSIS_ESIL_OP_TYPE_CONTROL_FLOW
Definition: rz_analysis.h:1179
@ RZ_ANALYSIS_ESIL_OP_TYPE_MEM_READ
Definition: rz_analysis.h:1180
@ RZ_ANALYSIS_ESIL_OP_TYPE_REG_WRITE
Definition: rz_analysis.h:1182
@ RZ_ANALYSIS_ESIL_OP_TYPE_CUSTOM
Definition: rz_analysis.h:1184

◆ _RzAnalysisOpType

Enumerator
RZ_ANALYSIS_OP_TYPE_COND 
RZ_ANALYSIS_OP_TYPE_REP 
RZ_ANALYSIS_OP_TYPE_MEM 
RZ_ANALYSIS_OP_TYPE_REG 
RZ_ANALYSIS_OP_TYPE_IND 
RZ_ANALYSIS_OP_TYPE_NULL 
RZ_ANALYSIS_OP_TYPE_JMP 
RZ_ANALYSIS_OP_TYPE_UJMP 
RZ_ANALYSIS_OP_TYPE_RJMP 
RZ_ANALYSIS_OP_TYPE_IJMP 
RZ_ANALYSIS_OP_TYPE_IRJMP 
RZ_ANALYSIS_OP_TYPE_CJMP 
RZ_ANALYSIS_OP_TYPE_RCJMP 
RZ_ANALYSIS_OP_TYPE_MJMP 
RZ_ANALYSIS_OP_TYPE_MCJMP 
RZ_ANALYSIS_OP_TYPE_UCJMP 
RZ_ANALYSIS_OP_TYPE_CALL 
RZ_ANALYSIS_OP_TYPE_UCALL 
RZ_ANALYSIS_OP_TYPE_RCALL 
RZ_ANALYSIS_OP_TYPE_ICALL 
RZ_ANALYSIS_OP_TYPE_IRCALL 
RZ_ANALYSIS_OP_TYPE_CCALL 
RZ_ANALYSIS_OP_TYPE_UCCALL 
RZ_ANALYSIS_OP_TYPE_RET 
RZ_ANALYSIS_OP_TYPE_CRET 
RZ_ANALYSIS_OP_TYPE_ILL 
RZ_ANALYSIS_OP_TYPE_UNK 
RZ_ANALYSIS_OP_TYPE_NOP 
RZ_ANALYSIS_OP_TYPE_MOV 
RZ_ANALYSIS_OP_TYPE_CMOV 
RZ_ANALYSIS_OP_TYPE_TRAP 
RZ_ANALYSIS_OP_TYPE_SWI 
RZ_ANALYSIS_OP_TYPE_CSWI 
RZ_ANALYSIS_OP_TYPE_UPUSH 
RZ_ANALYSIS_OP_TYPE_RPUSH 
RZ_ANALYSIS_OP_TYPE_PUSH 
RZ_ANALYSIS_OP_TYPE_POP 
RZ_ANALYSIS_OP_TYPE_CMP 
RZ_ANALYSIS_OP_TYPE_ACMP 
RZ_ANALYSIS_OP_TYPE_ADD 
RZ_ANALYSIS_OP_TYPE_SUB 
RZ_ANALYSIS_OP_TYPE_IO 
RZ_ANALYSIS_OP_TYPE_MUL 
RZ_ANALYSIS_OP_TYPE_DIV 
RZ_ANALYSIS_OP_TYPE_SHR 
RZ_ANALYSIS_OP_TYPE_SHL 
RZ_ANALYSIS_OP_TYPE_SAL 
RZ_ANALYSIS_OP_TYPE_SAR 
RZ_ANALYSIS_OP_TYPE_OR 
RZ_ANALYSIS_OP_TYPE_AND 
RZ_ANALYSIS_OP_TYPE_XOR 
RZ_ANALYSIS_OP_TYPE_NOR 
RZ_ANALYSIS_OP_TYPE_NOT 
RZ_ANALYSIS_OP_TYPE_STORE 
RZ_ANALYSIS_OP_TYPE_LOAD 
RZ_ANALYSIS_OP_TYPE_LEA 
RZ_ANALYSIS_OP_TYPE_LEAVE 
RZ_ANALYSIS_OP_TYPE_ROR 
RZ_ANALYSIS_OP_TYPE_ROL 
RZ_ANALYSIS_OP_TYPE_XCHG 
RZ_ANALYSIS_OP_TYPE_MOD 
RZ_ANALYSIS_OP_TYPE_SWITCH 
RZ_ANALYSIS_OP_TYPE_CASE 
RZ_ANALYSIS_OP_TYPE_LENGTH 
RZ_ANALYSIS_OP_TYPE_CAST 
RZ_ANALYSIS_OP_TYPE_NEW 
RZ_ANALYSIS_OP_TYPE_ABS 
RZ_ANALYSIS_OP_TYPE_CPL 
RZ_ANALYSIS_OP_TYPE_CRYPTO 
RZ_ANALYSIS_OP_TYPE_SYNC 

Definition at line 360 of file rz_analysis.h.

360  {
361  RZ_ANALYSIS_OP_TYPE_COND = 0x80000000, // TODO must be moved to prefix?
362  // TODO: MOVE TO PREFIX .. it is used by analysis_java.. must be updated
363  RZ_ANALYSIS_OP_TYPE_REP = 0x40000000, /* repeats next instruction N times */
364  RZ_ANALYSIS_OP_TYPE_MEM = 0x20000000, // TODO must be moved to prefix?
365  RZ_ANALYSIS_OP_TYPE_REG = 0x10000000, // operand is a register
366  RZ_ANALYSIS_OP_TYPE_IND = 0x08000000, // operand is indirect
368  RZ_ANALYSIS_OP_TYPE_JMP = 1, /* mandatory jump */
369  RZ_ANALYSIS_OP_TYPE_UJMP = 2, /* unknown jump (register or so) */
378  RZ_ANALYSIS_OP_TYPE_CALL = 3, /* call to subroutine (branch+link) */
379  RZ_ANALYSIS_OP_TYPE_UCALL = 4, /* unknown call (register or so) */
383  RZ_ANALYSIS_OP_TYPE_CCALL = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_CALL, /* conditional call to subroutine */
385  RZ_ANALYSIS_OP_TYPE_RET = 5, /* returns from subroutine */
386  RZ_ANALYSIS_OP_TYPE_CRET = RZ_ANALYSIS_OP_TYPE_COND | RZ_ANALYSIS_OP_TYPE_RET, /* conditional return from subroutine */
387  RZ_ANALYSIS_OP_TYPE_ILL = 6, /* illegal instruction // trap */
388  RZ_ANALYSIS_OP_TYPE_UNK = 7, /* unknown opcode type */
389  RZ_ANALYSIS_OP_TYPE_NOP = 8, /* does nothing */
390  RZ_ANALYSIS_OP_TYPE_MOV = 9, /* register move */
391  RZ_ANALYSIS_OP_TYPE_CMOV = 9 | RZ_ANALYSIS_OP_TYPE_COND, /* conditional move */
392  RZ_ANALYSIS_OP_TYPE_TRAP = 10, /* it's a trap! */
393  RZ_ANALYSIS_OP_TYPE_SWI = 11, /* syscall, software interrupt */
394  RZ_ANALYSIS_OP_TYPE_CSWI = 11 | RZ_ANALYSIS_OP_TYPE_COND, /* syscall, software interrupt */
395  RZ_ANALYSIS_OP_TYPE_UPUSH = 12, /* unknown push of data into stack */
397  RZ_ANALYSIS_OP_TYPE_PUSH = 13, /* push value into stack */
398  RZ_ANALYSIS_OP_TYPE_POP = 14, /* pop value from stack to register */
399  RZ_ANALYSIS_OP_TYPE_CMP = 15, /* compare something */
400  RZ_ANALYSIS_OP_TYPE_ACMP = 16, /* compare via and */
415  RZ_ANALYSIS_OP_TYPE_STORE = 31, /* store from register to memory */
416  RZ_ANALYSIS_OP_TYPE_LOAD = 32, /* load from memory to register */
417  RZ_ANALYSIS_OP_TYPE_LEA = 33, /* TODO add ulea */
429  RZ_ANALYSIS_OP_TYPE_CPL = 45, /* complement */
432 // RZ_ANALYSIS_OP_TYPE_DEBUG = 43, // monitor/trace/breakpoint
433 #if 0
434  RZ_ANALYSIS_OP_TYPE_PRIV = 40, /* privileged instruction */
435  RZ_ANALYSIS_OP_TYPE_FPU = 41, /* floating point stuff */
436 #endif
_RzAnalysisOpType
Definition: rz_analysis.h:360
@ RZ_ANALYSIS_OP_TYPE_CMP
Definition: rz_analysis.h:399
@ RZ_ANALYSIS_OP_TYPE_SUB
Definition: rz_analysis.h:402
@ RZ_ANALYSIS_OP_TYPE_ICALL
Definition: rz_analysis.h:381
@ RZ_ANALYSIS_OP_TYPE_LOAD
Definition: rz_analysis.h:416
@ RZ_ANALYSIS_OP_TYPE_CRYPTO
Definition: rz_analysis.h:430
@ RZ_ANALYSIS_OP_TYPE_UNK
Definition: rz_analysis.h:388
@ RZ_ANALYSIS_OP_TYPE_MUL
Definition: rz_analysis.h:404
@ RZ_ANALYSIS_OP_TYPE_ROL
Definition: rz_analysis.h:420
@ RZ_ANALYSIS_OP_TYPE_CASE
Definition: rz_analysis.h:424
@ RZ_ANALYSIS_OP_TYPE_JMP
Definition: rz_analysis.h:368
@ RZ_ANALYSIS_OP_TYPE_REP
Definition: rz_analysis.h:363
@ RZ_ANALYSIS_OP_TYPE_AND
Definition: rz_analysis.h:411
@ RZ_ANALYSIS_OP_TYPE_SAL
Definition: rz_analysis.h:408
@ RZ_ANALYSIS_OP_TYPE_SYNC
Definition: rz_analysis.h:431
@ RZ_ANALYSIS_OP_TYPE_MOD
Definition: rz_analysis.h:422
@ RZ_ANALYSIS_OP_TYPE_UPUSH
Definition: rz_analysis.h:395
@ RZ_ANALYSIS_OP_TYPE_RPUSH
Definition: rz_analysis.h:396
@ RZ_ANALYSIS_OP_TYPE_UJMP
Definition: rz_analysis.h:369
@ RZ_ANALYSIS_OP_TYPE_NOR
Definition: rz_analysis.h:413
@ RZ_ANALYSIS_OP_TYPE_IJMP
Definition: rz_analysis.h:371
@ RZ_ANALYSIS_OP_TYPE_IO
Definition: rz_analysis.h:403
@ RZ_ANALYSIS_OP_TYPE_UCCALL
Definition: rz_analysis.h:384
@ RZ_ANALYSIS_OP_TYPE_MJMP
Definition: rz_analysis.h:375
@ RZ_ANALYSIS_OP_TYPE_ROR
Definition: rz_analysis.h:419
@ RZ_ANALYSIS_OP_TYPE_SWI
Definition: rz_analysis.h:393
@ RZ_ANALYSIS_OP_TYPE_SAR
Definition: rz_analysis.h:409
@ RZ_ANALYSIS_OP_TYPE_ABS
Definition: rz_analysis.h:428
@ RZ_ANALYSIS_OP_TYPE_IND
Definition: rz_analysis.h:366
@ RZ_ANALYSIS_OP_TYPE_NULL
Definition: rz_analysis.h:367
@ RZ_ANALYSIS_OP_TYPE_CMOV
Definition: rz_analysis.h:391
@ RZ_ANALYSIS_OP_TYPE_LEAVE
Definition: rz_analysis.h:418
@ RZ_ANALYSIS_OP_TYPE_TRAP
Definition: rz_analysis.h:392
@ RZ_ANALYSIS_OP_TYPE_XCHG
Definition: rz_analysis.h:421
@ RZ_ANALYSIS_OP_TYPE_MEM
Definition: rz_analysis.h:364
@ RZ_ANALYSIS_OP_TYPE_CCALL
Definition: rz_analysis.h:383
@ RZ_ANALYSIS_OP_TYPE_CALL
Definition: rz_analysis.h:378
@ RZ_ANALYSIS_OP_TYPE_ADD
Definition: rz_analysis.h:401
@ RZ_ANALYSIS_OP_TYPE_SWITCH
Definition: rz_analysis.h:423
@ RZ_ANALYSIS_OP_TYPE_OR
Definition: rz_analysis.h:410
@ RZ_ANALYSIS_OP_TYPE_STORE
Definition: rz_analysis.h:415
@ RZ_ANALYSIS_OP_TYPE_CPL
Definition: rz_analysis.h:429
@ RZ_ANALYSIS_OP_TYPE_REG
Definition: rz_analysis.h:365
@ RZ_ANALYSIS_OP_TYPE_RCJMP
Definition: rz_analysis.h:374
@ RZ_ANALYSIS_OP_TYPE_CRET
Definition: rz_analysis.h:386
@ RZ_ANALYSIS_OP_TYPE_PUSH
Definition: rz_analysis.h:397
@ RZ_ANALYSIS_OP_TYPE_SHR
Definition: rz_analysis.h:406
@ RZ_ANALYSIS_OP_TYPE_IRJMP
Definition: rz_analysis.h:372
@ RZ_ANALYSIS_OP_TYPE_POP
Definition: rz_analysis.h:398
@ RZ_ANALYSIS_OP_TYPE_RJMP
Definition: rz_analysis.h:370
@ RZ_ANALYSIS_OP_TYPE_CJMP
Definition: rz_analysis.h:373
@ RZ_ANALYSIS_OP_TYPE_DIV
Definition: rz_analysis.h:405
@ RZ_ANALYSIS_OP_TYPE_CSWI
Definition: rz_analysis.h:394
@ RZ_ANALYSIS_OP_TYPE_COND
Definition: rz_analysis.h:361
@ RZ_ANALYSIS_OP_TYPE_CAST
Definition: rz_analysis.h:426
@ RZ_ANALYSIS_OP_TYPE_UCJMP
Definition: rz_analysis.h:377
@ RZ_ANALYSIS_OP_TYPE_MOV
Definition: rz_analysis.h:390
@ RZ_ANALYSIS_OP_TYPE_SHL
Definition: rz_analysis.h:407
@ RZ_ANALYSIS_OP_TYPE_ILL
Definition: rz_analysis.h:387
@ RZ_ANALYSIS_OP_TYPE_UCALL
Definition: rz_analysis.h:379
@ RZ_ANALYSIS_OP_TYPE_NOT
Definition: rz_analysis.h:414
@ RZ_ANALYSIS_OP_TYPE_RET
Definition: rz_analysis.h:385
@ RZ_ANALYSIS_OP_TYPE_NOP
Definition: rz_analysis.h:389
@ RZ_ANALYSIS_OP_TYPE_ACMP
Definition: rz_analysis.h:400
@ RZ_ANALYSIS_OP_TYPE_LEA
Definition: rz_analysis.h:417
@ RZ_ANALYSIS_OP_TYPE_RCALL
Definition: rz_analysis.h:380
@ RZ_ANALYSIS_OP_TYPE_XOR
Definition: rz_analysis.h:412
@ RZ_ANALYSIS_OP_TYPE_NEW
Definition: rz_analysis.h:427
@ RZ_ANALYSIS_OP_TYPE_LENGTH
Definition: rz_analysis.h:425
@ RZ_ANALYSIS_OP_TYPE_MCJMP
Definition: rz_analysis.h:376
@ RZ_ANALYSIS_OP_TYPE_IRCALL
Definition: rz_analysis.h:382

◆ _RzAnalysisVarScope

Enumerator
RZ_ANALYSIS_VAR_SCOPE_LOCAL 

Definition at line 450 of file rz_analysis.h.

450  {
_RzAnalysisVarScope
Definition: rz_analysis.h:450
@ RZ_ANALYSIS_VAR_SCOPE_LOCAL
Definition: rz_analysis.h:451

◆ rz_analysis_addr_hint_type_t

Enumerator
RZ_ANALYSIS_ADDR_HINT_TYPE_IMMBASE 
RZ_ANALYSIS_ADDR_HINT_TYPE_JUMP 
RZ_ANALYSIS_ADDR_HINT_TYPE_FAIL 
RZ_ANALYSIS_ADDR_HINT_TYPE_STACKFRAME 
RZ_ANALYSIS_ADDR_HINT_TYPE_PTR 
RZ_ANALYSIS_ADDR_HINT_TYPE_NWORD 
RZ_ANALYSIS_ADDR_HINT_TYPE_RET 
RZ_ANALYSIS_ADDR_HINT_TYPE_NEW_BITS 
RZ_ANALYSIS_ADDR_HINT_TYPE_SIZE 
RZ_ANALYSIS_ADDR_HINT_TYPE_SYNTAX 
RZ_ANALYSIS_ADDR_HINT_TYPE_OPTYPE 
RZ_ANALYSIS_ADDR_HINT_TYPE_OPCODE 
RZ_ANALYSIS_ADDR_HINT_TYPE_TYPE_OFFSET 
RZ_ANALYSIS_ADDR_HINT_TYPE_ESIL 
RZ_ANALYSIS_ADDR_HINT_TYPE_HIGH 
RZ_ANALYSIS_ADDR_HINT_TYPE_VAL 

Definition at line 629 of file rz_analysis.h.

629  {
@ RZ_ANALYSIS_ADDR_HINT_TYPE_SYNTAX
Definition: rz_analysis.h:639
@ RZ_ANALYSIS_ADDR_HINT_TYPE_PTR
Definition: rz_analysis.h:634
@ RZ_ANALYSIS_ADDR_HINT_TYPE_SIZE
Definition: rz_analysis.h:638
@ RZ_ANALYSIS_ADDR_HINT_TYPE_STACKFRAME
Definition: rz_analysis.h:633
@ RZ_ANALYSIS_ADDR_HINT_TYPE_HIGH
Definition: rz_analysis.h:644
@ RZ_ANALYSIS_ADDR_HINT_TYPE_ESIL
Definition: rz_analysis.h:643
@ RZ_ANALYSIS_ADDR_HINT_TYPE_NEW_BITS
Definition: rz_analysis.h:637
@ RZ_ANALYSIS_ADDR_HINT_TYPE_TYPE_OFFSET
Definition: rz_analysis.h:642
@ RZ_ANALYSIS_ADDR_HINT_TYPE_JUMP
Definition: rz_analysis.h:631
@ RZ_ANALYSIS_ADDR_HINT_TYPE_OPTYPE
Definition: rz_analysis.h:640
@ RZ_ANALYSIS_ADDR_HINT_TYPE_RET
Definition: rz_analysis.h:636
@ RZ_ANALYSIS_ADDR_HINT_TYPE_IMMBASE
Definition: rz_analysis.h:630
@ RZ_ANALYSIS_ADDR_HINT_TYPE_NWORD
Definition: rz_analysis.h:635
@ RZ_ANALYSIS_ADDR_HINT_TYPE_FAIL
Definition: rz_analysis.h:632
@ RZ_ANALYSIS_ADDR_HINT_TYPE_OPCODE
Definition: rz_analysis.h:641
@ RZ_ANALYSIS_ADDR_HINT_TYPE_VAL
Definition: rz_analysis.h:645
enum rz_analysis_addr_hint_type_t RzAnalysisAddrHintType

◆ rz_analysis_data_type_t

Enumerator
RZ_ANALYSIS_DATATYPE_NULL 
RZ_ANALYSIS_DATATYPE_ARRAY 
RZ_ANALYSIS_DATATYPE_OBJECT 
RZ_ANALYSIS_DATATYPE_STRING 
RZ_ANALYSIS_DATATYPE_CLASS 
RZ_ANALYSIS_DATATYPE_BOOLEAN 
RZ_ANALYSIS_DATATYPE_INT16 
RZ_ANALYSIS_DATATYPE_INT32 
RZ_ANALYSIS_DATATYPE_INT64 
RZ_ANALYSIS_DATATYPE_FLOAT 

Definition at line 796 of file rz_analysis.h.

796  {
799  RZ_ANALYSIS_DATATYPE_OBJECT, // instance
@ RZ_ANALYSIS_DATATYPE_FLOAT
Definition: rz_analysis.h:806
@ RZ_ANALYSIS_DATATYPE_INT64
Definition: rz_analysis.h:805
@ RZ_ANALYSIS_DATATYPE_STRING
Definition: rz_analysis.h:800
@ RZ_ANALYSIS_DATATYPE_NULL
Definition: rz_analysis.h:797
@ RZ_ANALYSIS_DATATYPE_INT32
Definition: rz_analysis.h:804
@ RZ_ANALYSIS_DATATYPE_ARRAY
Definition: rz_analysis.h:798
@ RZ_ANALYSIS_DATATYPE_CLASS
Definition: rz_analysis.h:801
@ RZ_ANALYSIS_DATATYPE_BOOLEAN
Definition: rz_analysis.h:802
@ RZ_ANALYSIS_DATATYPE_OBJECT
Definition: rz_analysis.h:799
@ RZ_ANALYSIS_DATATYPE_INT16
Definition: rz_analysis.h:803
enum rz_analysis_data_type_t RzAnalysisDataType

◆ RzAnalysisBBEndCause

Enumerator
RZ_ANALYSIS_RET_NOP 
RZ_ANALYSIS_RET_ERROR 
RZ_ANALYSIS_RET_END 
RZ_ANALYSIS_RET_BRANCH 
RZ_ANALYSIS_RET_COND 

Definition at line 472 of file rz_analysis.h.

472  {
474  RZ_ANALYSIS_RET_ERROR = -1, // Basic block ended because of analysis error.
475  RZ_ANALYSIS_RET_END = -4, // Basic block ended because of return instruction.
476  RZ_ANALYSIS_RET_BRANCH = -5, // Basic block ended because of branch instruction.
477  RZ_ANALYSIS_RET_COND = -6, // Basic block ended because of conditional return.
RzAnalysisBBEndCause
Definition: rz_analysis.h:472
@ RZ_ANALYSIS_RET_BRANCH
Definition: rz_analysis.h:476
@ RZ_ANALYSIS_RET_COND
Definition: rz_analysis.h:477
@ RZ_ANALYSIS_RET_ERROR
Definition: rz_analysis.h:474
@ RZ_ANALYSIS_RET_NOP
Definition: rz_analysis.h:473
@ RZ_ANALYSIS_RET_END
Definition: rz_analysis.h:475

◆ RzAnalysisCPPABI

Enumerator
RZ_ANALYSIS_CPP_ABI_ITANIUM 
RZ_ANALYSIS_CPP_ABI_MSVC 

Definition at line 541 of file rz_analysis.h.

541  {
RzAnalysisCPPABI
Definition: rz_analysis.h:541
@ RZ_ANALYSIS_CPP_ABI_ITANIUM
Definition: rz_analysis.h:542
@ RZ_ANALYSIS_CPP_ABI_MSVC
Definition: rz_analysis.h:543

◆ RzAnalysisEsilBlockEnterType

Enumerator
RZ_ANALYSIS_ESIL_BLOCK_ENTER_NORMAL 
RZ_ANALYSIS_ESIL_BLOCK_ENTER_TRUE 
RZ_ANALYSIS_ESIL_BLOCK_ENTER_FALSE 
RZ_ANALYSIS_ESIL_BLOCK_ENTER_GLUE 

Definition at line 1202 of file rz_analysis.h.

1202  {
RzAnalysisEsilBlockEnterType
Definition: rz_analysis.h:1202
@ RZ_ANALYSIS_ESIL_BLOCK_ENTER_FALSE
Definition: rz_analysis.h:1205
@ RZ_ANALYSIS_ESIL_BLOCK_ENTER_TRUE
Definition: rz_analysis.h:1204
@ RZ_ANALYSIS_ESIL_BLOCK_ENTER_NORMAL
Definition: rz_analysis.h:1203
@ RZ_ANALYSIS_ESIL_BLOCK_ENTER_GLUE
Definition: rz_analysis.h:1206

◆ RzAnalysisILStepResult

Enumerator
RZ_ANALYSIS_IL_STEP_RESULT_SUCCESS 
RZ_ANALYSIS_IL_STEP_RESULT_NOT_SET_UP 
RZ_ANALYSIS_IL_STEP_IL_RUNTIME_ERROR 
RZ_ANALYSIS_IL_STEP_INVALID_OP 

Definition at line 1161 of file rz_analysis.h.

1161  {
RzAnalysisILStepResult
Definition: rz_analysis.h:1161
@ RZ_ANALYSIS_IL_STEP_IL_RUNTIME_ERROR
Definition: rz_analysis.h:1164
@ RZ_ANALYSIS_IL_STEP_INVALID_OP
Definition: rz_analysis.h:1165
@ RZ_ANALYSIS_IL_STEP_RESULT_SUCCESS
Definition: rz_analysis.h:1162
@ RZ_ANALYSIS_IL_STEP_RESULT_NOT_SET_UP
Definition: rz_analysis.h:1163

◆ RzAnalysisMetaType

Enumerator
RZ_META_TYPE_ANY 
RZ_META_TYPE_DATA 
RZ_META_TYPE_CODE 
RZ_META_TYPE_STRING 
RZ_META_TYPE_FORMAT 
RZ_META_TYPE_MAGIC 
RZ_META_TYPE_HIDE 
RZ_META_TYPE_COMMENT 
RZ_META_TYPE_HIGHLIGHT 
RZ_META_TYPE_VARTYPE 

Definition at line 287 of file rz_analysis.h.

287  {
288  RZ_META_TYPE_ANY = -1,
289  RZ_META_TYPE_DATA = 'd', //< marks the data as data (not a code)
290  RZ_META_TYPE_CODE = 'c', //< marks the data as code
291  RZ_META_TYPE_STRING = 's', //< marks the data as string
292  RZ_META_TYPE_FORMAT = 'f', //< sets the specified format (pf) to the data
293  RZ_META_TYPE_MAGIC = 'm', //< sets the magic string to the data
294  RZ_META_TYPE_HIDE = 'h', //< set the data as hidden
295  RZ_META_TYPE_COMMENT = 'C', //< attaches the comment to the data
296  RZ_META_TYPE_HIGHLIGHT = 'H', //< sets the specified highlight to the data
297  RZ_META_TYPE_VARTYPE = 't', //< sets the specified type to the variable/address
RzAnalysisMetaType
Definition: rz_analysis.h:287
@ RZ_META_TYPE_VARTYPE
Definition: rz_analysis.h:297
@ RZ_META_TYPE_ANY
Definition: rz_analysis.h:288
@ RZ_META_TYPE_DATA
Definition: rz_analysis.h:289
@ RZ_META_TYPE_CODE
Definition: rz_analysis.h:290
@ RZ_META_TYPE_HIGHLIGHT
Definition: rz_analysis.h:296
@ RZ_META_TYPE_HIDE
Definition: rz_analysis.h:294
@ RZ_META_TYPE_MAGIC
Definition: rz_analysis.h:293
@ RZ_META_TYPE_STRING
Definition: rz_analysis.h:291
@ RZ_META_TYPE_COMMENT
Definition: rz_analysis.h:295
@ RZ_META_TYPE_FORMAT
Definition: rz_analysis.h:292

◆ RzAnalysisOpDirection

Enumerator
RZ_ANALYSIS_OP_DIR_READ 
RZ_ANALYSIS_OP_DIR_WRITE 
RZ_ANALYSIS_OP_DIR_EXEC 
RZ_ANALYSIS_OP_DIR_REF 

Definition at line 789 of file rz_analysis.h.

789  {
RzAnalysisOpDirection
Definition: rz_analysis.h:789
@ RZ_ANALYSIS_OP_DIR_READ
Definition: rz_analysis.h:790
@ RZ_ANALYSIS_OP_DIR_EXEC
Definition: rz_analysis.h:792
@ RZ_ANALYSIS_OP_DIR_WRITE
Definition: rz_analysis.h:791
@ RZ_ANALYSIS_OP_DIR_REF
Definition: rz_analysis.h:793

◆ RzAnalysisOpFamily

Enumerator
RZ_ANALYSIS_OP_FAMILY_UNKNOWN 
RZ_ANALYSIS_OP_FAMILY_CPU 
RZ_ANALYSIS_OP_FAMILY_FPU 
RZ_ANALYSIS_OP_FAMILY_MMX 
RZ_ANALYSIS_OP_FAMILY_SSE 
RZ_ANALYSIS_OP_FAMILY_PRIV 
RZ_ANALYSIS_OP_FAMILY_CRYPTO 
RZ_ANALYSIS_OP_FAMILY_THREAD 
RZ_ANALYSIS_OP_FAMILY_VIRT 
RZ_ANALYSIS_OP_FAMILY_SECURITY 
RZ_ANALYSIS_OP_FAMILY_IO 
RZ_ANALYSIS_OP_FAMILY_LAST 

Definition at line 310 of file rz_analysis.h.

310  {
312  RZ_ANALYSIS_OP_FAMILY_CPU = 0, /* normal cpu instruction */
313  RZ_ANALYSIS_OP_FAMILY_FPU, /* fpu (floating point) */
314  RZ_ANALYSIS_OP_FAMILY_MMX, /* multimedia instruction (packed data) */
315  RZ_ANALYSIS_OP_FAMILY_SSE, /* extended multimedia instruction (packed data) */
316  RZ_ANALYSIS_OP_FAMILY_PRIV, /* privileged instruction */
317  RZ_ANALYSIS_OP_FAMILY_CRYPTO, /* cryptographic instructions */
318  RZ_ANALYSIS_OP_FAMILY_THREAD, /* thread/lock/sync instructions */
319  RZ_ANALYSIS_OP_FAMILY_VIRT, /* virtualization instructions */
320  RZ_ANALYSIS_OP_FAMILY_SECURITY, /* security instructions */
321  RZ_ANALYSIS_OP_FAMILY_IO, /* IO instructions (i.e. IN/OUT) */
RzAnalysisOpFamily
Definition: rz_analysis.h:310
@ RZ_ANALYSIS_OP_FAMILY_FPU
Definition: rz_analysis.h:313
@ RZ_ANALYSIS_OP_FAMILY_THREAD
Definition: rz_analysis.h:318
@ RZ_ANALYSIS_OP_FAMILY_LAST
Definition: rz_analysis.h:322
@ RZ_ANALYSIS_OP_FAMILY_CRYPTO
Definition: rz_analysis.h:317
@ RZ_ANALYSIS_OP_FAMILY_SSE
Definition: rz_analysis.h:315
@ RZ_ANALYSIS_OP_FAMILY_UNKNOWN
Definition: rz_analysis.h:311
@ RZ_ANALYSIS_OP_FAMILY_PRIV
Definition: rz_analysis.h:316
@ RZ_ANALYSIS_OP_FAMILY_CPU
Definition: rz_analysis.h:312
@ RZ_ANALYSIS_OP_FAMILY_MMX
Definition: rz_analysis.h:314
@ RZ_ANALYSIS_OP_FAMILY_VIRT
Definition: rz_analysis.h:319
@ RZ_ANALYSIS_OP_FAMILY_IO
Definition: rz_analysis.h:321
@ RZ_ANALYSIS_OP_FAMILY_SECURITY
Definition: rz_analysis.h:320

◆ RzAnalysisOpMask

Enumerator
RZ_ANALYSIS_OP_MASK_BASIC 
RZ_ANALYSIS_OP_MASK_ESIL 
RZ_ANALYSIS_OP_MASK_VAL 
RZ_ANALYSIS_OP_MASK_HINT 
RZ_ANALYSIS_OP_MASK_OPEX 
RZ_ANALYSIS_OP_MASK_DISASM 
RZ_ANALYSIS_OP_MASK_IL 
RZ_ANALYSIS_OP_MASK_ALL 

Definition at line 439 of file rz_analysis.h.

439  {
440  RZ_ANALYSIS_OP_MASK_BASIC = 0, // Just fills basic op info , it's fast
441  RZ_ANALYSIS_OP_MASK_ESIL = (1 << 0), // It fills RzAnalysisop->esil info
442  RZ_ANALYSIS_OP_MASK_VAL = (1 << 1), // It fills RzAnalysisop->dst/src info
443  RZ_ANALYSIS_OP_MASK_HINT = (1 << 2), // It calls rz_analysis_op_hint to override analysis options
444  RZ_ANALYSIS_OP_MASK_OPEX = (1 << 3), // It fills RzAnalysisop->opex info
445  RZ_ANALYSIS_OP_MASK_DISASM = (1 << 4), // It fills RzAnalysisop->mnemonic // should be RzAnalysisOp->disasm // only from rz_core_analysis_op()
446  RZ_ANALYSIS_OP_MASK_IL = (1 << 5), // It fills RzAnalysisop->il_op
RzAnalysisOpMask
Definition: rz_analysis.h:439
@ RZ_ANALYSIS_OP_MASK_DISASM
Definition: rz_analysis.h:445
@ RZ_ANALYSIS_OP_MASK_ALL
Definition: rz_analysis.h:447
@ RZ_ANALYSIS_OP_MASK_BASIC
Definition: rz_analysis.h:440
@ RZ_ANALYSIS_OP_MASK_VAL
Definition: rz_analysis.h:442
@ RZ_ANALYSIS_OP_MASK_OPEX
Definition: rz_analysis.h:444
@ RZ_ANALYSIS_OP_MASK_ESIL
Definition: rz_analysis.h:441
@ RZ_ANALYSIS_OP_MASK_HINT
Definition: rz_analysis.h:443
@ RZ_ANALYSIS_OP_MASK_IL
Definition: rz_analysis.h:446

◆ RzAnalysisOpPrefix

Enumerator
RZ_ANALYSIS_OP_PREFIX_COND 
RZ_ANALYSIS_OP_PREFIX_REP 
RZ_ANALYSIS_OP_PREFIX_REPNE 
RZ_ANALYSIS_OP_PREFIX_LOCK 
RZ_ANALYSIS_OP_PREFIX_LIKELY 
RZ_ANALYSIS_OP_PREFIX_UNLIKELY 
RZ_ANALYSIS_OP_PREFIX_HWLOOP_END 

Definition at line 346 of file rz_analysis.h.

346  {
348  RZ_ANALYSIS_OP_PREFIX_REP = 1 << 1,
353  RZ_ANALYSIS_OP_PREFIX_HWLOOP_END = 1 << 6, /* Hexagon specific. Last instruction in a hardware loop */
354  /* TODO: add segment override typemods? */
RzAnalysisOpPrefix
Definition: rz_analysis.h:346
@ RZ_ANALYSIS_OP_PREFIX_HWLOOP_END
Definition: rz_analysis.h:353
@ RZ_ANALYSIS_OP_PREFIX_REP
Definition: rz_analysis.h:348
@ RZ_ANALYSIS_OP_PREFIX_UNLIKELY
Definition: rz_analysis.h:352
@ RZ_ANALYSIS_OP_PREFIX_COND
Definition: rz_analysis.h:347
@ RZ_ANALYSIS_OP_PREFIX_LOCK
Definition: rz_analysis.h:350
@ RZ_ANALYSIS_OP_PREFIX_LIKELY
Definition: rz_analysis.h:351
@ RZ_ANALYSIS_OP_PREFIX_REPNE
Definition: rz_analysis.h:349

◆ RzAnalysisStackOp

Enumerator
RZ_ANALYSIS_STACK_NULL 
RZ_ANALYSIS_STACK_NOP 
RZ_ANALYSIS_STACK_INC 
RZ_ANALYSIS_STACK_GET 
RZ_ANALYSIS_STACK_SET 
RZ_ANALYSIS_STACK_RESET 
RZ_ANALYSIS_STACK_ALIGN 

Definition at line 454 of file rz_analysis.h.

454  {
RzAnalysisStackOp
Definition: rz_analysis.h:454
@ RZ_ANALYSIS_STACK_RESET
Definition: rz_analysis.h:460
@ RZ_ANALYSIS_STACK_SET
Definition: rz_analysis.h:459
@ RZ_ANALYSIS_STACK_GET
Definition: rz_analysis.h:458
@ RZ_ANALYSIS_STACK_NULL
Definition: rz_analysis.h:455
@ RZ_ANALYSIS_STACK_ALIGN
Definition: rz_analysis.h:461
@ RZ_ANALYSIS_STACK_INC
Definition: rz_analysis.h:457
@ RZ_ANALYSIS_STACK_NOP
Definition: rz_analysis.h:456

◆ RzAnalysisValueAccess

Enumerator
RZ_ANALYSIS_ACC_UNKNOWN 
RZ_ANALYSIS_ACC_R 
RZ_ANALYSIS_ACC_W 

Definition at line 760 of file rz_analysis.h.

760  {
762  RZ_ANALYSIS_ACC_R = (1 << 0),
763  RZ_ANALYSIS_ACC_W = (1 << 1),
RzAnalysisValueAccess
Definition: rz_analysis.h:760
@ RZ_ANALYSIS_ACC_R
Definition: rz_analysis.h:762
@ RZ_ANALYSIS_ACC_UNKNOWN
Definition: rz_analysis.h:761
@ RZ_ANALYSIS_ACC_W
Definition: rz_analysis.h:763

◆ RzAnalysisValueType

Enumerator
RZ_ANALYSIS_VAL_UNK 
RZ_ANALYSIS_VAL_REG 
RZ_ANALYSIS_VAL_MEM 
RZ_ANALYSIS_VAL_IMM 

Definition at line 766 of file rz_analysis.h.

766  {
RzAnalysisValueType
Definition: rz_analysis.h:766
@ RZ_ANALYSIS_VAL_IMM
Definition: rz_analysis.h:770
@ RZ_ANALYSIS_VAL_REG
Definition: rz_analysis.h:768
@ RZ_ANALYSIS_VAL_MEM
Definition: rz_analysis.h:769
@ RZ_ANALYSIS_VAL_UNK
Definition: rz_analysis.h:767

◆ RzAnalysisVarAccessType

Enumerator
RZ_ANALYSIS_VAR_ACCESS_TYPE_PTR 
RZ_ANALYSIS_VAR_ACCESS_TYPE_READ 
RZ_ANALYSIS_VAR_ACCESS_TYPE_WRITE 

Definition at line 711 of file rz_analysis.h.

711  {
RzAnalysisVarAccessType
Definition: rz_analysis.h:711
@ RZ_ANALYSIS_VAR_ACCESS_TYPE_READ
Definition: rz_analysis.h:713
@ RZ_ANALYSIS_VAR_ACCESS_TYPE_WRITE
Definition: rz_analysis.h:714
@ RZ_ANALYSIS_VAR_ACCESS_TYPE_PTR
Definition: rz_analysis.h:712

◆ RzAnalysisVarKind

Enumerator
RZ_ANALYSIS_VAR_KIND_REG 
RZ_ANALYSIS_VAR_KIND_BPV 
RZ_ANALYSIS_VAR_KIND_SPV 

Definition at line 702 of file rz_analysis.h.

702  {
RzAnalysisVarKind
Definition: rz_analysis.h:702
@ RZ_ANALYSIS_VAR_KIND_REG
Definition: rz_analysis.h:703
@ RZ_ANALYSIS_VAR_KIND_SPV
Definition: rz_analysis.h:705
@ RZ_ANALYSIS_VAR_KIND_BPV
Definition: rz_analysis.h:704

◆ RzAnalysisXRefType

Enumerator
RZ_ANALYSIS_XREF_TYPE_NULL 
RZ_ANALYSIS_XREF_TYPE_CODE 
RZ_ANALYSIS_XREF_TYPE_CALL 
RZ_ANALYSIS_XREF_TYPE_DATA 
RZ_ANALYSIS_XREF_TYPE_STRING 

Definition at line 898 of file rz_analysis.h.

898  {
900  RZ_ANALYSIS_XREF_TYPE_CODE = 'c', // code ref
901  RZ_ANALYSIS_XREF_TYPE_CALL = 'C', // code ref (call)
902  RZ_ANALYSIS_XREF_TYPE_DATA = 'd', // mem ref
903  RZ_ANALYSIS_XREF_TYPE_STRING = 's' // string ref
RzAnalysisXRefType
Definition: rz_analysis.h:898
@ RZ_ANALYSIS_XREF_TYPE_CODE
Definition: rz_analysis.h:900
@ RZ_ANALYSIS_XREF_TYPE_NULL
Definition: rz_analysis.h:899
@ RZ_ANALYSIS_XREF_TYPE_STRING
Definition: rz_analysis.h:903
@ RZ_ANALYSIS_XREF_TYPE_CALL
Definition: rz_analysis.h:901
@ RZ_ANALYSIS_XREF_TYPE_DATA
Definition: rz_analysis.h:902

Function Documentation

◆ rz_analysis_esil_claim_source()

RZ_API bool rz_analysis_esil_claim_source ( ANALYSIS_ESIL esil,
ut32  src_id 
)

◆ rz_analysis_esil_get_source()

RZ_API void* rz_analysis_esil_get_source ( ANALYSIS_ESIL esil,
ut32  src_id 
)

◆ rz_analysis_esil_load_source()

RZ_API ut32 rz_analysis_esil_load_source ( ANALYSIS_ESIL esil,
const char *  path 
)

◆ rz_analysis_esil_release_source()

RZ_API void rz_analysis_esil_release_source ( ANALYSIS_ESIL esil,
ut32  src_id 
)

◆ rz_analysis_esil_sources_fini()

RZ_API void rz_analysis_esil_sources_fini ( ANALYSIS_ESIL esil)

◆ rz_analysis_esil_sources_init()

RZ_API void rz_analysis_esil_sources_init ( ANALYSIS_ESIL esil)

◆ rz_analysis_ref_type_tostring()

RZ_API const char* rz_analysis_ref_type_tostring ( RzAnalysisXRefType  t)

Definition at line 307 of file xrefs.c.

307  {
308  switch (t) {
310  return "null";
312  return "code";
314  return "call";
316  return "data";
318  return "string";
319  }
320  return "unknown";
321 }

References RZ_ANALYSIS_XREF_TYPE_CALL, RZ_ANALYSIS_XREF_TYPE_CODE, RZ_ANALYSIS_XREF_TYPE_DATA, RZ_ANALYSIS_XREF_TYPE_NULL, and RZ_ANALYSIS_XREF_TYPE_STRING.

◆ RZ_LIB_VERSION_HEADER()

RZ_LIB_VERSION_HEADER ( rz_analysis  )