我正在閱讀某人的代碼,他正在調用這樣的函數。該塊中的「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