Итак, мы проходили через это уже несколько раз, мы выпускаем игру (по дешевке), а кто-то ее хакает и выкладывает на зеркало. Мы настраиваем оповещения Google для всех наших приложений, поэтому нам ежедневно сообщают, кто занимается взломом. До сих пор мы реализовали службу лицензирования, как предложил Google, наша соль создается случайным образом каждый раз, когда лицензия инициируется с уникальным идентификатором устройства. Мы запускаем службу проверки один раз, когда приложение запускается в первый раз. Затем мы генерируем 512-символьный хэш для ключа и сохраненного значения, которое затем сравнивается с SharedPreferences.
Теперь я знаю, что однократная проверка, вероятно, блокирует приложение. Наш байт-код, скорее всего, был просмотрен и перекомпилирован без строки, инициирующей проверку.
Отсюда я не хочу запутывать наш код, поскольку я видел, как он раньше ломался. Я хочу что-то более твердое, и я также хочу научиться делать это правильно. На данный момент меня больше интересует обучение, чем зарабатывание денег, поскольку только 2% людей когда-либо будут искать взломанную версию.
Пока что я самостоятельно придумал генератор случайных чисел, который размещается в нескольких стартовых областях игры. При запуске (скажем, 1 раз из 50) проверяется лицензия. Я знаю, что это затруднит взлом, потому что взломщику придется устранять каждый случай, компилировать, устранять, компилировать. Однако этот метод все еще можно взломать ... так что вы, ребята, предлагаете? Опять же, меня очень интересует этот процесс обеспечения безопасности, поэтому, пожалуйста, просветите, не превращайте это в обсуждение обфускации или периодической проверки на основе метки времени.
Спасибо