调用可变地址

逆向工程 拆卸
2021-06-24 22:21:16

我遇到了以下说明:

mov ecx, [ebp + var_4]
imul ecx, 4
call dword_1423d4[ecx]

有人可以向我解释这可能意味着什么或为我指明正确的方向吗?为什么调用变量?

2个回答

dword_1423d4 是一个指向 32 位函数指针的全局数组的指针。

var_4 是该数组的索引。

call指令调用函数数组中索引var_4处的dword_1423d4函数。

立即想到的是某种类型的虚拟化层访问 IAT 或 IVT。我完全同意之前的答案,即这是对函数指针数组中的函数向量的调用。我也同意它看起来不像 switch 语句。这就是让我了解中断向量表/地址表的原因。