IDA GameData Tracker
C++ 15
// Áttekintés
Játékfüggvényeket követ a bináris frissítések között. Automatikusan áthelyezi a szignatúrákat, a vtable-offseteket és a függvényen belüli mintákat, így a Source Engine-modok túlélnek minden patchet.
// Mivel készült
IDA ProsignaturesSource Engine
// A probléma
A Source Engine modok gamedata-szignatúrákhoz, vtable-offsetekhez és függvényen belüli bájtmintákhoz kötődnek. Minden játékfrissítés elmozdítja ezeket, és a mod csendben elromlik, amíg valaki kézzel le nem vezeti újra mindet.
// Megközelítés
- Pillanatképet készít a szignatúrákról, vtable-offsetekről és függvényen belüli mintákról egy ismert jó binárisból.
- Egy új buildnél megtalálja ugyanezeket a konstrukciókat és automatikusan újrahorgonyozza őket.
- Frissített gamedata-készletet ad ki, így a modok átvészelik a patchet.
// Mérnöki kihívások
- Egy elmozdult függvény újra megtalálása, amikor a környező bájtok is megváltoztak.
- Megkülönböztetni egy áthelyezett függvényt egy ténylegesen másiktól.
- Alacsonyan tartani a téves újrahorgonyzásokat, hogy a kimenet megbízható maradjon.