Будет ли эта анти-читерская техника работать для многопользовательской игры с использованием частных серверов (общеизвестный исполняемый файл):
Когда клиент запускает игру, он автоматически обновляется ежедневно (с помощью программы запуска). Серверы тоже обновятся.
Если нет реального патча, обновление состоит только из изменений в структуре памяти игровых объектов, сетевого кода и шейдеров.
Это делается с помощью автоматизированной системы, которая автоматически генерирует и рандомизирует (C ++) классы.
Возможно, он также может добавить поддельные объекты в иерархию, чтобы затруднить идентификацию объектов.
Таким образом, я надеюсь обновить игру быстрее, чем взломщик сможет и будет перепроектировать, обновлять и публиковать / обновлять новый чит.
Будет ли это работать или хакеры как-нибудь обойдут этот механизм?
Будут ли они выполнять эту работу ежедневно или они могут автоматизировать ее в какой-то момент?
Что я могу сделать, чтобы улучшить эту систему?
Кажется, что рандомизированное расположение памяти не помогает в долгосрочной перспективе, потому что расположение можно более или менее легко извлечь, следуя вызовам функций в исполняемом файле и извлекая смещения указателя из этого кода.
Таким образом, для эффективного предотвращения этого необходимо также рандомизировать структуру вызовов и сам код.
Есть ли хорошие способы сделать это? Это работает против автоматического взлома?
Гонка вооружений на стороне клиента — совершенно неправильный способ сделать это. Ты сможешь никогда быть лучше или быстрее, чем группа детей, у которых слишком много свободного времени. Вы не можете соревноваться с толпой нападающих, у которых нет затрат (кроме как не выполнять свою домашнюю работу), в то время как ваши действия стоят вам времени и денег. Эту гонку вы проиграете, как в финансовом, так и в конечном результате.
Есть два способа, которыми люди могут мошенничать:
Есть ровно два способа, которыми вы можете удержать людей от этого:
Помните старую поговорку: «Клиент в руках врага».
Я не знаю, будет ли такая система успешной, чтобы избежать мошенничества, но у меня были бы проблемы с производством и обслуживанием такой системы. Например, вы говорите
Это делается с помощью автоматизированной системы, которая автоматически генерирует и
рандомизирует (C ++) классы. Может быть, это также может добавить поддельные объекты к
иерархия, чтобы сделать идентификацию объектов сложнее.
В любом случае, я сомневаюсь, что вы сможете выполнить какое-то эффективное запутывание критических частей вашего кода без серьезных недостатков, таких как ухудшение производительности или совершенно неправильные вычисления (например, вычисление с плавающей запятой). Если у вас есть два разных механизма для расчета одного и того же значения, вы будете в конце концов имеют разные результаты для одного и того же набора входов.