|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2011
Сообщений: 127
|
Защита очков в игре от накрутки (асинхронность флеш)
Задача защитить очки от накрути в онлайн игре. Чтобы игрок не мог посмотреть переменные в памяти и подменить их.
Использовал MochiDigits для шифровки, но некоторые одаренные персоны все равно умудряются делать накрутку. Понимаю, что можно взломать флеш и подделать cookie и подписи запросов, но это все-таки посложнее. Хочу использовать такой алгоритм защиты. Значение набранных очков хранятся одновременно в 2-х переменных, которые постоянно сверяются с частотой смены кадров флешки. Есть функция Аf выполняющая сверку - запускается по событию Event.ENTER_FRAME (если вдруг переменные не равны, то игрок получит бан), и есть другая функция Bf которая обновляет сразу 2 переменные при переходе на следующий уровень. Все это реализовано в одном классе. Вопросы к профессионалам. 1) Насколько уязвим такой алгоритм? 2) Возможна ли ситуация когда функции Аf и Bf запустятся одновременно и одна из них успеет обновить одну переменную, но не обновит вторую и при сверке в другой игрок получит бан? Я слышал про асинхронность флеш, но толком не знаю что это такое. |
|
|||||
Нет, 2 метода одновременно во флэше выполняться не могут. Второй не запустится пока первый не отработает.
|
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Есть еще класс MemoryCrypto от electrotank
По использованию похожа на хэш мэп, вот тут можно глянуть пример. Но полностью защитить вряд ли удастся. Если находятся те, кто и так накручивает очки, значит и сверку переменных обойдут |
|
|||||
Не очень понимаю проблему. Действия игрока отсылаются на сервак, там идут проверки, выполняются алгоритмы, считаются очки и все это приходит клиенту. Клиент показывает очки игроку.
Клиент не должен говорить серваку "я набрал 100500 очков, кинь в БД".
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
Регистрация: Mar 2007
Сообщений: 545
|
Это все понятно, но вот представим тетрис - все действия отсылаем на сервер, эмулируем и сохраняем (сравниваем)? Как-то не очень рационально.
|
|
|||||
По завершению игры отсылаем кол-во уничтоженных линий, а сервер возвращает\записывает в базу суммарное кол-во очков, после чего обновляем очки игрока(+ например, таблицу рекордов и т.д.), примерно так.
__________________
местонахождение |
|
|||||
Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
|
Вот
Но никакая защита не помешает читеру подделать запрос по окончании игры. Единственная защита, которая 100% не позволит накрутить очки - это сокетный сервак, который контролирует каждое действие игры. Последний раз редактировалось smithy; 10.12.2011 в 18:43. |
|
|||||
Цитата:
__________________
местонахождение |
|
|||||
Цитата:
|
Часовой пояс GMT +4, время: 18:58. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|