C++ Идеальная статическая иерархия или как объединить объекты в структуру
1919 показов
7K7K открытий

Очевидно, что разработчики следовали тому же принципуОчевидно, что разработчики при старте загрузили те ресурсы, которые нужны сначала. Остальное потом по надобности будет загружаться/выгружаться. Это немножко другое)

Статическое размещение - это когда прям вся игра сразу инициализируется. Насколько я помню, благодаря этому, было очень легко в старых игрушках в артмани всё ломать, т.к. смещение в адресном пространстве у переменных было всегда одинаково независимо от перезапуска.

Ответить

Данную систему можно защитить, выделив место под "главный" объект на куче, а сам указатель хранить на стэке в функции main() например. В принципе, чем меньше глобальных переменных используется, тем сложнее сломать. Ибо глобальные или статические переменные мапятся с одинаковым смещением относительно модуля, в котором они объявлены. Подобные методы взлома работают и в современных играх, но при x64 адресное пространство 8тб - искать сложнее, плюс современные игры гораздо активнее реагируют на вызовы ReadProcessMemory и тому подобное.
Но в целом вы правы, если есть какое место в памяти, где лежит все данные игра будет крайне уязвима. 

Ответить