VTable Hijacking

為什麼需要 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++