我遇到了以下说明:
mov ecx, [ebp + var_4]
imul ecx, 4
call dword_1423d4[ecx]
有人可以向我解释这可能意味着什么或为我指明正确的方向吗?为什么调用变量?
我遇到了以下说明:
mov ecx, [ebp + var_4]
imul ecx, 4
call dword_1423d4[ecx]
有人可以向我解释这可能意味着什么或为我指明正确的方向吗?为什么调用变量?
dword_1423d4
是一个指向 32 位函数指针的全局数组的指针。
var_4
是该数组的索引。
该call
指令调用函数数组中索引var_4
处的dword_1423d4
函数。
立即想到的是某种类型的虚拟化层访问 IAT 或 IVT。我完全同意之前的答案,即这是对函数指针数组中的函数向量的调用。我也同意它看起来不像 switch 语句。这就是让我了解中断向量表/地址表的原因。