假设如下Struct:
tvm struc
cpu dq 10 dup(0efh)
vst dd 0
stack db VIRTUAL_STACK dup(0)
g1m dq offset fg1m
excpustotebstkb dq offset fexcpustk
x64pushad dq offset fx64pushad
x64popad dq offset fx64popad
popadcy dq offset fpopadcy
popadcysd dq offset fpopadcysd
pushadcp dq offset fpushadcp
pushadcpsd dq offset fpushadcpsd
psh dq offset fpsh
pp dq offset fpp
getso dq offset fgetso
setso dq offset fsetso
addvsp dq offset faddvsp
tvm ends
vm tvm <>
gvm qword 0
指针用法(貌似必须使用寄存器,否则变量名称会被编译器编译成偏移地址):
lea rax,gvm
mov gvm,rax
mov rcx,gvm
mov rdx, (tvm ptr [rcx]).g1m
call rdx