Избегайте взлома таблицы лидеров в Game Center - PullRequest
13 голосов
/ 13 апреля 2011

Кто-нибудь нашел способ избежать взлома лидербордов в Game Center или хотя бы усложнить его?

Вы можете посмотреть видео HackCenter, приложения Cydia, которое позволяет вам отправлять любые результаты здесь: Hack Center

Несмотря на то, что это приложение не должно быть доступно в Cydia Store, мы все видели оценки, которые, очевидно, являются фальшивыми в нескольких играх в AppStore. В отличие от баллов, представленных в этом видео, фальшивые баллы, как правило, смехотворно высоки, и они обескураживают других игроков, поскольку они никогда не смогут достичь вершины списка лидеров.

Я не смог выяснить, как происходит взлом (я предполагаю, что они пересекают вызов http и просто заменяют параметр Score на то, что они хотят?).

Любое понимание приветствуется.

Ответы [ 5 ]

6 голосов
/ 13 апреля 2011

Проблема связана с тем, что пользователи могут создавать свои собственные данные на стороне устройства. Это было бы намного сложнее, если бы все вычисления, связанные с оценками, были выполнены на стороне сервера, а затем отправлены на табло (я не знаю, как работает ваше приложение, поэтому я не могу рекомендовать конкретную технику).

Я думаю, что ЛУЧШЕЕ, что вы можете сделать, это записать данные о том, КАК они получили действительно высокий балл для последующего просмотра вами. Это может быть невозможно в зависимости от структуры вашей игры. Это также может быть подделано в зависимости от вашей структуры игры. Например, некоторые игровые результаты невозможно получить в игре только из-за физики того, как игра работает. Это, на мой взгляд, ваша лучшая защита от этого. К сожалению, это требует постоянного мониторинга ...

Кроме того, даже если вы можете проверить фальшивые результаты, кто-то может непрерывно подделывать фальшивые результаты в течение всего дня, и вы никогда не сможете идти в ногу с этим. Кто-то забьет подчинение боту, победит в итоге. Это не человек, ты. Он может публиковать фальшивые результаты в течение всего дня, вы не можете следить за фальшивыми результатами в течение всего дня, вы не можете проверить тысячи фальшивых представлений. Попытка проверить все, что генерируется на стороне пользователя (например, идентификатор устройства, устанавливаемое приложение и т. Д.), Не имеет смысла. Это может быть подделано. IP-адреса тоже не имеют смысла. Ваше приложение предназначено для мобильной платформы, которая может получить совершенно новый IP-адрес от сотовой компании. Отслеживать единственных настоящих реальных пользователей очень сложно, если кто-то хочет скрыться от вас из-за этого.

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

Это только мои 2 цента, надеюсь, это поможет.

3 голосов
/ 16 июля 2013

Есть две таблицы рекордов: те, у кого есть cydia, те, у кого нет: P

3 голосов
/ 02 мая 2013

Поскольку они перехватывают http , к сожалению, вы ничего не можете сделать.Я даже обнаружил, что установка максимального количества очков в таблице лидеров в itunes connect не имеет никакого эффекта.

Игра, над которой я работал, никогда не сериализовала партитуру на диск - так что ее нельзя было изменить - и установила максимальный балл на 30м.Тем не менее, таблица лидеров была полна результатов IntMax в течение нескольких часов после запуска.

Надеюсь, у Apple появятся некоторые исправления, появившиеся в WDC13, потому что в мировом масштабе таблицы лидеров по всему миру бесполезны.

2 голосов
/ 13 апреля 2011

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

Лично я бы просто проверил Cydia:

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]

Я не уверен, какой именно URL для Hack Center, но, возможно, вы могли бы попытаться угадать его пару раз. Я бы догадался «cydia: // hack_center» или что-то в этом роде. И затем, как только вы найдете URL, замените его 'cydia: //' на него.

0 голосов
/ 11 июня 2015

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

...