我正在阅读某人的代码,他正在调用这样的函数。该块中的“this”是指向虚拟方法表的指针,并且他正在使用偏移量来调用所述表中的函数。如果您想知道,这是一个黑客行为。
__asm
{
MOV EDI, this
LEA ECX, [EDI + 0x4]
MOV EDX, DWORD PTR DS:[ECX]
CALL [EDX + 0x24]
}
他有一些更简单的代码,只是调用“this”+偏移量,但我对这个代码中发生的事情感到困惑。如果有帮助的话,我可以从 Ida 发布 vtable 转储。