我正在阅读某人的代码,他正在调用这样的函数。该块中的“this”是一个指向虚拟方法表的指针,他正在使用偏移量来调用表中的函数。如果你想知道这是一件黑客事情。这是怎么回事?
__asm
{
MOV EDI, this
LEA ECX, [EDI + 0x4]
MOV EDX, DWORD PTR DS:[ECX]
CALL [EDX + 0x24]
}
他的代码更简单位,只是称“这个” +偏移,但我对什么是在这个事情感到困惑。我可以发布Ida的vtable转储,如果这样会有所帮助的话。
哦,是的,该函数返回一个指向结构的指针,如果有帮助的话。 – haze 2013-04-09 03:34:43
你能澄清一下“发生了什么”的含义吗?你是否要求解释个别装配说明?或者是“个别装配说明”是你正在寻找的答案? – 2013-04-09 03:47:01
我只想知道作者是如何从0xD4获得偏移量的。另外,什么是“DWORD PTR DS:[ECX]”部分在做什么?这几乎是我想要弄清楚的。 – haze 2013-04-09 03:54:31