Я программирую для игры под названием Crysis Wars, и в последнее время игроки постоянно просят новое обновление игры (патч для сообщества), чтобы исправить проблемы, в том числе довольно ироничную ошибку скриптинга.
Есть несколько игровых хаков, известных как Infinium, Gamg, Annihilator. & Longpoke, которые полагаются на методы внедрения DLL для размещения хаков & читы внутри игры без внутренней античит системы.
Эти хаки довольно просты и используют код основной игровой DLL через модификации шестнадцатеричных значений, а некоторые (например, Gamg) создаются с помощью собственного SDK игрового движка (я знаю создателя этого хака).
Как и другие, у меня есть доступ к CryEngine 2 (игровой движок) SDK (включает в себя исходный код для основной игры DLL), и я предлагаю изменить имя & расположение всех игровых функций (как для клиента, так и для сервера), поэтому существующие хаки больше не будут работать.
Будет ли это работать, чтобы остановить хаки, сделанные с изменением шестнадцатеричных значений в основной игре DLL? Я подтверждаю, что хаки, сделанные с помощью SDK, больше не будут работать, но я хочу проверить с другими, прежде чем пытаться сделать это, так как это потребует много работы.
В основном то, что я спрашиваю:
Хакеры используют DLL в игре, изменяя исходный код, если я изменю все функции в исходном коде и выпущу обновление (сообщества) для игры (без выпуска нового исходного кода), смогут ли хакеры использовать такие же взломы без проблем?
Я прошу прощения, если это кажется запутанным — пожалуйста, скажите, если мне нужно быть более ясным.
Вы сломаете все, легальные и нелегальные моды. Незаконные моды, вероятно, будут исправлены довольно скоро; довольно просто перепроектировать предложенные изменения.
Лучший способ — включить предотвращение выполнения данных и подключить функцию VirtualProtect, которая необходима для обхода DEP. После этого вы сможете ловить попытки установить более поздний хук. Конечно, убедитесь, что нет никакого существующего хука для VirtualProtect, а также какого-либо известного хака DLL.
Других решений пока нет …