Можно ли безопасно проверить автономные лицензионные ключи на стороне клиента?
Можно ли проверить лицензионные ключи в клиентском приложении таким образом, что его становится очень трудно взломать?
Рассмотрим следующий простой пример:
var status = secure_function_that_checks_license();
if (status == "REGISTERED")
print("Welcome, user");
else
print("Access denied");
Независимо от того, насколько сложна ваша функция, в конце концов вам всегда придется переходить в зависимости от результата, который она дает.
Этот поток объясняет немного больше о генерации и проверке ключей, но не объясняет, как избежать проблемы ветвления.
Является ли единственный способ сделать это безопасным способом, используя какую-либо схему онлайн-активации?
1 ответ
Во-первых, если все помнят, что при взломе нет никакой защиты, это просто остановка, если ваш код стоит взломать, он будет взломан
Теперь в процессе запутывания есть практика, называемая inlining, она просто заменяет ваш вызов функции на фактическое тело функции, таким образом, ваш код будет сложнее взломать, так как есть гораздо больше кода для модификации