Из learn.microsoft.com:
Ключевое const
слово указывает, что значение переменной является
константой, и указывает компилятору запретить программисту изменить
его.
Т.е. другими словами, использование переменной с ключевым словом const
запрещает изменять данную переменную на уровне компиляции программы.
В результате работы для данной переменной выдается место в памяти. Если всю память приложения просканировать, затем отыскать данную переменную, а затем изменить значение по адресу в этой памяти, то переменная измениться (что собственно и делает Cheat Engine
).
Стоит вопрос, а как можно защитить переменные от переписывания?
- Можно создать методы проверки целостности данных, проверяя те же
константы от других констант
- Обфускация кода, чтобы затрдунить поиск переменных в памяти в рантайме
- Мониторинг внешних программ - выявляйте процесс
Cheat engine
и блокируйте работу программы (самый плохой метод, так как каждый может написать собственный софт для изменения переменных в памяти подобное Cheat engine
)
Это малая часть того, что Я могу предложить. На самом деле методов защиты памяти существует много, это достаточно глубокая тема и совершенно другой вопрос, надеюсь это даст вам наводку на следующие действия...