Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как защитить таймер в игре от взлома Cheat Engine (http://www.flasher.ru/forum/showthread.php?t=206382)

ZackMercury 01.02.2014 02:58

Цитата:

А это pattern или
Если вы это всерьёз, то, мне кажется, вы немного переборщили с пиханием знаний в себя. :D

caseyryan 01.02.2014 09:52

Цитата:

Если вы это всерьёз, то, мне кажется, вы немного переборщили с пиханием знаний в себя. :D
+1 ) Почти тоже самое хотел написать :D

Akopalipsis, это не паттерн. Это просто способ получить время

Akopalipsis 01.02.2014 13:50

Цитата:

Если вы это всерьёз, то, мне кажется, вы немного переборщили с пиханием знаний в себя.
А чего не так? я первым делом в гугл, там сразу нашлось WebService flex, а про flex я знаю, что какие-то классы у него реализованы по шаблону MVC. Сразу вспомнил RL2 и его Service... Вот и спросил.

gloomyBrain 01.02.2014 14:37

Цитата:

Сообщение от Babylon (Сообщение 1158626)
Вообще делается обычным веб сервисом. Нафик вводить какие-то новые понятия? Всё давно изобретено.

О да, давайте продолжим. Вы неплохо держитесь и мне нравится Ваш стиль.

Итак, web-сервис возвращает нам время. И тогда клиент говорит: "ну раз уже прошло 20 минут, начислю-ка я золота-кристаллов-энергии".
А что будет, если я, например подделаю ответ сервера (да-да, банально через прокси)? Тогда игрок начислит энергию раньше времени, ведь так? И более того, нам придется на сервере проверять:
"а почему игрок купил себе товар N?" - потому что у него было золото
"а откуда у игрока золото?" - оно начислилось в пол-второго позавчера
"а почему оно начислилось?" - потому что гладиолусы!

И вот таких причинно-следственных взаимосвязей будет тем больше, чем больше у нас данных в игре. И как только мы делаем что-то вроде (Боже упаси) фермы, то получаем огромное количество причин, по которым мы можем или не можем что-то делать (с привязкой ко времени). Проверять все на клиенте и на сервере ужасно сложно, потому что приходится писать 2 одинаковых набора команд на 2 языках (например, AS3 и Java)

Решение:
Составляем схему всех-всех данных игрока в игре (json)
Разбиваем все действия в игре на команды (функции, меняющие наши данные)
Пишем команды на кросс-компилируемом языка (например Haxe)
...
профит!

Важною деталью тут является то, что
- каждая команда отправляется на сервер с приписочкой, когда именно она была исполнена
- перед тем ка исполнить команду, сервер проверяет, что
а) команда выполнена после создания пользователя
б) команда выполнена после предыдущей команды
в) команда выполнена раньше текущего времени на сервере

Все, обмануть сервер нельзя никак. Вот такие пироги. Удачи с web-сервисами =)

Babylon 01.02.2014 15:52

Веб сервис реализуется именно с подтверждениями ответов от сервера. Таймер это такой же девайс как датчик температуры или камера слежения.

LOS2008 01.02.2014 20:18

Цитата:

А что будет, если я, например подделаю ответ сервера (да-да, банально через прокси)?
Перейти на HTTPS.

in4core 02.02.2014 04:06

Цитата:

а про flex я знаю, что какие-то классы у него реализованы по шаблону MVC.
Скрин


Часовой пояс GMT +4, время: 12:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.