5 #include "../../asm/arch/cil/cil_dis.h"
22 ut32 table = tok >> 24;
31 CILOp cilop = { { { 0 } } };
39 switch (cilop.
byte1) {
53 case CIL_OP_LDC_I4_M1:
78 case CIL_OP_LDIND_REF:
86 case CIL_OP_LDELEM_I1:
87 case CIL_OP_LDELEM_U1:
88 case CIL_OP_LDELEM_I2:
89 case CIL_OP_LDELEM_U2:
90 case CIL_OP_LDELEM_I4:
91 case CIL_OP_LDELEM_U4:
92 case CIL_OP_LDELEM_I8:
94 case CIL_OP_LDELEM_R4:
95 case CIL_OP_LDELEM_R8:
96 case CIL_OP_LDELEM_REF:
107 case CIL_OP_STIND_REF:
108 case CIL_OP_STIND_I1:
109 case CIL_OP_STIND_I2:
110 case CIL_OP_STIND_I4:
111 case CIL_OP_STIND_I8:
112 case CIL_OP_STIND_R4:
113 case CIL_OP_STIND_R8:
117 case CIL_OP_STELEM_I:
118 case CIL_OP_STELEM_I1:
119 case CIL_OP_STELEM_I2:
120 case CIL_OP_STELEM_I4:
121 case CIL_OP_STELEM_I8:
122 case CIL_OP_STELEM_R4:
123 case CIL_OP_STELEM_R8:
124 case CIL_OP_STELEM_REF:
131 case CIL_OP_ADD_OVF_UN:
136 case CIL_OP_SUB_OVF_UN:
141 case CIL_OP_MUL_OVF_UN:
182 case CIL_OP_CONV_R_UN:
183 case CIL_OP_CONV_OVF_I1_UN:
184 case CIL_OP_CONV_OVF_I2_UN:
185 case CIL_OP_CONV_OVF_I4_UN:
186 case CIL_OP_CONV_OVF_I8_UN:
187 case CIL_OP_CONV_OVF_U1_UN:
188 case CIL_OP_CONV_OVF_U2_UN:
189 case CIL_OP_CONV_OVF_U4_UN:
190 case CIL_OP_CONV_OVF_U8_UN:
191 case CIL_OP_CONV_OVF_I_UN:
192 case CIL_OP_CONV_OVF_U_UN:
193 case CIL_OP_CONV_OVF_I1:
194 case CIL_OP_CONV_OVF_U1:
195 case CIL_OP_CONV_OVF_I2:
196 case CIL_OP_CONV_OVF_U2:
197 case CIL_OP_CONV_OVF_I4:
198 case CIL_OP_CONV_OVF_U4:
199 case CIL_OP_CONV_OVF_I8:
200 case CIL_OP_CONV_OVF_U8:
204 case CIL_OP_CONV_OVF_I:
205 case CIL_OP_CONV_OVF_U:
216 case CIL_OP_CALLVIRT:
227 case CIL_OP_BRFALSE_S:
228 case CIL_OP_BRTRUE_S:
234 case CIL_OP_BNE_UN_S:
235 case CIL_OP_BGE_UN_S:
236 case CIL_OP_BGT_UN_S:
237 case CIL_OP_BLE_UN_S:
238 case CIL_OP_BLT_UN_S:
261 switch (cilop.
byte2) {
270 case CIL_OP2_LDVIRTFTN:
289 return op->size = cilop.
size;
294 .desc =
"dotnet CIL code analysis plugin",
RzAnalysisPlugin rz_analysis_plugin_cil
static ut64 analyze_InlineMethod(RzAnalysis *analysis, CILOp *cilop)
static int cil_analyze_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *buf, int len, RzAnalysisOpMask mask)
static ut64 get_offset(RzBinFile *bf, int type, int index)
int cil_dis(CILOp *op, const ut8 *buf, int len)
Disassemble a CIL buffer.
@ RZ_ANALYSIS_OP_TYPE_CMP
@ RZ_ANALYSIS_OP_TYPE_SUB
@ RZ_ANALYSIS_OP_TYPE_LOAD
@ RZ_ANALYSIS_OP_TYPE_MUL
@ RZ_ANALYSIS_OP_TYPE_JMP
@ RZ_ANALYSIS_OP_TYPE_AND
@ RZ_ANALYSIS_OP_TYPE_MOD
@ RZ_ANALYSIS_OP_TYPE_SAR
@ RZ_ANALYSIS_OP_TYPE_NULL
@ RZ_ANALYSIS_OP_TYPE_CALL
@ RZ_ANALYSIS_OP_TYPE_ADD
@ RZ_ANALYSIS_OP_TYPE_STORE
@ RZ_ANALYSIS_OP_TYPE_SHR
@ RZ_ANALYSIS_OP_TYPE_CJMP
@ RZ_ANALYSIS_OP_TYPE_DIV
@ RZ_ANALYSIS_OP_TYPE_CAST
@ RZ_ANALYSIS_OP_TYPE_SHL
@ RZ_ANALYSIS_OP_TYPE_NOT
@ RZ_ANALYSIS_OP_TYPE_RET
@ RZ_ANALYSIS_OP_TYPE_NOP
@ RZ_ANALYSIS_OP_TYPE_XOR
ut64(* RzBinGetOffset)(RzBin *bin, int type, int idx)
RZ_API void rz_strbuf_fini(RzStrBuf *sb)
RzBinGetOffset get_offset
ut64(WINAPI *w32_GetEnabledXStateFeatures)()