為什麼需要 VTable?
待補
使用到 virtual function 需要透過 vtable 管理。
VTable 怎麼運作?
Virtual function 透過 vtable 進行管理
object vtable
┌───────┐ ┌────────┐
│vtable ├────────┤func ptr│
│obj var│ │func ptr│
│obj var│ │func ptr│
│ │ │func ptr│
│ │ │ │
└───────┘ └────────┘
call obj 的 virtual function 會透過 vtable 下去找查特定的 func ptr 執行。
VTable Hijacking
如果攻擊者有辦法複寫 obj 當中的 vtable pointer 到 fake vtable,就可以控制 function pointer
PWN C++