Rizin
unix-like reverse engineering framework and cli tools
rz_il_vm_t Struct Reference

Low-level VM to execute raw IL code. More...

#include <rz_il_vm.h>

Public Attributes

RzILVarSet global_vars
 All global variables (usually bound to registers) More...
 
RzILVarSet local_vars
 All local variables, created by local set ops. More...
 
RzILVarSet local_pure_vars
 All local variables, during execution temporarily bound by let, only usable in pure expressions and immutable. More...
 
RzPVector vm_memory
 Memories available in the VM, by their index. May be sparse (contain NULLs). More...
 
ut32 val_count
 
ut32 lab_count
 count for VM predefined things More...
 
ut32 addr_size
 size of address space More...
 
HtPP * vm_global_label_table
 Hashtable to maintain the label and address. More...
 
HtPP * vm_local_label_table
 Hashtable to maintain the label and address. More...
 
RzBitVectorpc
 Program Counter of VM. More...
 
RzILOpPureHandlerop_handler_pure_table
 Array of Handler, handler can be indexed by opcode. More...
 
RzILOpEffectHandlerop_handler_effect_table
 Array of Handler, handler can be indexed by opcode. More...
 
RzListevents
 List of events that has happened in the last step. More...
 
bool big_endian
 Sets the endianness of the memory reads/writes operations. More...
 

Detailed Description

Low-level VM to execute raw IL code.

Definition at line 37 of file rz_il_vm.h.

Member Data Documentation

◆ addr_size

ut32 rz_il_vm_t::addr_size

size of address space

Definition at line 43 of file rz_il_vm.h.

Referenced by capstone.CsInsn::__gen_detail(), and rz_il_vm_init().

◆ big_endian

bool rz_il_vm_t::big_endian

Sets the endianness of the memory reads/writes operations.

Definition at line 50 of file rz_il_vm.h.

Referenced by rz_il_vm_init(), rz_il_vm_mem_loadw(), and rz_il_vm_mem_storew().

◆ events

RzList* rz_il_vm_t::events

List of events that has happened in the last step.

Definition at line 49 of file rz_il_vm.h.

Referenced by rz_core_analysis_il_step_with_events(), rz_il_vm_clear_events(), rz_il_vm_event_add(), rz_il_vm_fini(), and rz_il_vm_init().

◆ global_vars

RzILVarSet rz_il_vm_t::global_vars

All global variables (usually bound to registers)

Definition at line 38 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), rz_il_vm_init(), and var_set_of_kind().

◆ lab_count

ut32 rz_il_vm_t::lab_count

count for VM predefined things

Definition at line 42 of file rz_il_vm.h.

Referenced by rz_il_vm_init().

◆ local_pure_vars

RzILVarSet rz_il_vm_t::local_pure_vars

All local variables, during execution temporarily bound by let, only usable in pure expressions and immutable.

Definition at line 40 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), rz_il_vm_init(), and var_set_of_kind().

◆ local_vars

RzILVarSet rz_il_vm_t::local_vars

All local variables, created by local set ops.

Definition at line 39 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), rz_il_vm_init(), rz_il_vm_step(), and var_set_of_kind().

◆ op_handler_effect_table

RzILOpEffectHandler* rz_il_vm_t::op_handler_effect_table

Array of Handler, handler can be indexed by opcode.

Definition at line 48 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), and rz_il_vm_init().

◆ op_handler_pure_table

RzILOpPureHandler* rz_il_vm_t::op_handler_pure_table

Array of Handler, handler can be indexed by opcode.

Definition at line 47 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), and rz_il_vm_init().

◆ pc

◆ val_count

ut32 rz_il_vm_t::val_count

Definition at line 42 of file rz_il_vm.h.

Referenced by rz_il_vm_init().

◆ vm_global_label_table

HtPP* rz_il_vm_t::vm_global_label_table

Hashtable to maintain the label and address.

Definition at line 44 of file rz_il_vm.h.

Referenced by rz_il_vm_fini(), and rz_il_vm_init().

◆ vm_local_label_table

HtPP* rz_il_vm_t::vm_local_label_table

Hashtable to maintain the label and address.

Definition at line 45 of file rz_il_vm.h.

◆ vm_memory

RzPVector rz_il_vm_t::vm_memory

Memories available in the VM, by their index. May be sparse (contain NULLs).

Definition at line 41 of file rz_il_vm.h.

Referenced by rz_il_vm_add_mem(), rz_il_vm_fini(), rz_il_vm_get_mem(), and rz_il_vm_init().


The documentation for this struct was generated from the following file: