Прежде всего, я понимаю, что почти все приложения могут быть взломаны (особенно написано на С#). Мой вопрос здесь состоит в том, чтобы сделать его немного сложнее взломать.
Предположим, что пользователь сохранил файл лицензии в разделе Application.StartupPath, где все пользователи могут читать.
И затем, каждый раз, когда приложение запускается, оно проверяет, может ли он найти и проверить файл лицензии.
Если приложение может найти и проверить, мы разрешаем пользователю продолжать полные функциональные возможности.
Если нет, мы вызываем MessageBox, показывающий "Unlicensed, продолжаем использовать с пробной версией, ограниченные функциональные возможности".
Мой вопрос: если я хакер/взломщик, я попытаюсь обойти или обойти проверку лицензии вместо взлома файла лицензии, потому что, если мы используем подпись RSA, очень сложно взломать файл лицензии.
Итак, где мы должны поставить проверку лицензии?
P.S.: а также, насколько безопасно ли я помещать глобальную переменную IsLicensed (true/false) для ограничения функциональности? Легко ли для хакера изменить IsLicensed = true?