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