IDA VTable Explorer
C++ 138
// Áttekintés
Automatikus vtable-detektálás, öröklődéselemzés és függvényfelülírás-követés visszafejtett C++ binárisokhoz. GCC/MSVC szimbólumminta-detektálás, osztálynév-kinyerés, virtuálisfüggvény-indexelés, RTTI-alapú öröklődési hierarchia detektálása és interaktív vizualizáció. Támogatja az IDA Pro 9+-t Windows, Linux és macOS platformon.
// Mivel készült
C++IDA Pro SDKvtableRTTI
// A probléma
Egy C++ bináris visszafejtése azt jelenti, hogy kézzel kell újraépíteni az osztályok szerkezetét: megtalálni a vtable-öket, minden virtuális függvényt az osztályához kötni, és rekonstruálni az öröklődési fát. Egy stripped binárisnál ez osztályonként órányi manuális kereszthivatkozás.
// Megközelítés
- Végigpásztázza a binárist a vtable-elrendezésekért GCC és MSVC alatt is, majd minden bejegyzést a cél függvényéhez köt.
- Az osztályneveket és az öröklődési hierarchiát RTTI-ből nyeri ki, ha van, és strukturális heurisztikára vált, ha stripped.
- Mindent az IDA-n belül jelenít meg: vtable-választó, függvényböngésző, annotált vtable-ök és interaktív öröklődési gráf.
// Mérnöki kihívások
- GCC és MSVC másképp kódolja a vtable-t és az RTTI-t, ezért külön detektálási ágak futnak, amik egy modellbe érnek össze.
- A valódi vtable-öket megkülönböztetni a véletlen pointertömböktől anélkül, hogy elárasztaná a kimenetet téves találatokkal.
- Reszponzívnak maradni nagy binárisokon, ahol több ezer virtuális függvény van.



