Как предотвратить так взлом файла в так файл - PullRequest
0 голосов
/ 12 ноября 2018

В моем приложении (unity5, il2cpp build) есть такая функция, как

"GetScore ()"

К сожалению, я нашел взломанную версию моего приложения на черном рынке. функция GetScore () этой взломанной версии всегда возвращает 100. Исходное возвращаемое значение должно быть меньше 10.

Я полагаю, что это взломанное приложение будет переупаковано, используя 'il2cppDumper' и меняя возвращаемое значение на 100;

Есть ли способ предотвратить эту проблему?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вы никогда не будете удерживать хакеров от взлома ваших игр, даже если у него действительно есть резервный сервер. Достаточно взглянуть на весь неофициальный мир серверов Warcraft. Вы можете хранить вещи относительно безопасно, если у вас есть сервер, вы сохраняете его исходный код в безопасности, а ваша игра не имеет смысла без ее сервера (вспомните Dota 2 без многопользовательских возможностей ...). Даже в этом случае вы не можете на самом деле проверять каждый ход игрока, если только это не пошаговая игра, и вы фактически отправляете каждый ход на сервер, который нужно обработать (это работает, например, в Hearthstone, но не в WoW, следовательно, все читерские инструменты). EA не может этого сделать, Rockstar не может этого сделать, Activision не может этого сделать, даже могущественный Denuvo не может этого сделать, вы, конечно, не можете этого сделать.

Однако вы должны остановиться и спросить себя почему вы хотите, чтобы ваша игра была настолько безопасной. Из каждых 1000 мошенников, которых вы останавливаете, возможно, один или два действительно заплатят. Вы должны приложить умеренные усилия для обеспечения безопасности (примите совет KYL3R), просто чтобы честные люди были честными. Нечестные люди всегда найдут способ, так что не беспокойтесь о них так сильно, что вы в конечном итоге тратите время на (бесполезную) безопасность; время, которое вы могли бы потратить на улучшение игры.

Да, и кстати, это также один из способов не допустить хакеров: частые обновления игры. У них нет жизни, но у них нет достаточно времени, чтобы каждую неделю делать взломанную версию каждой игры на рынке.

0 голосов
/ 12 ноября 2018

Безопасность - это всегда вопрос усложнения хакерам - вы никогда не сможете помешать им взломать.

Итак, вот несколько мыслей:

  • Обфускация: GetScore() получает BananaJungle() - хакеры не могут найти правильную функцию, не обходя исходный код в течение нескольких часов (надеюсь)
  • Проверка оценки по нескольким точкам: функция, вызывающая GetScore(), должна выполнить проверку исправности: «она ниже 10?»
  • В дополнение к этому: Вы можете игнорировать оценки выше 10 дообмануть хакера ему удалось.Вы можете заблокировать приложение примерно через 2 часа.
  • Добавьте куда-нибудь ScoreLogger, в котором будет храниться история счета, так что getScore() может возвращать значения <10, но кто-то может просто перезаписать счет в коде на 999999.ScoreLogger проверит историю партитур на предмет прыжков и т. Д. </li>
  • Подтвердить счет с общим временем игры (приблизительно)
...