Прежде всего, поймите, что ключ будет лишь небольшим препятствием. Кто-то, кто знает, что они делают, просто удалит вызов ключа и вставит «true» для любого результата, который был вызван. Все скажут тебе это. Но есть контрольно-пропускные пункты, которые вы можете добавить!
Я бы нашел ключевую часть вашего кода, что-то, что трудно или трудно понять, что-то, что требует знания предметной области. Затем положите эти знания на ключ. Одним из примеров этого могут быть шейдерные процедуры. Процедуры шейдеров - это текстовые файлы, которые отправляются на видеокарту для достижения определенных эффектов; очень простой фильтр яркости / контраста может быть реализован менее чем за 500 символов, и вы можете сохранить его в пользовательском пространстве на большинстве ключей. Затем вы помещаете эту информацию на ключ и используете только информацию от ключа для показа изображений. Таким образом, если кто-то попытается просто удалить ваш ключ, все изображения в вашей программе будут затемнены. Для этого потребуется кто-то, у кого будет копия вашей программы, выхватите текстовый файл из ключа, а затем измените вашу программу, чтобы включить этот текстовый файл, и затем узнаете, что этот конкретный файл будет «правильным» способом отображения изображений. Особенности реализации зависят от вашей платформы развертывания. Например, если вы запускаете программу в WPF, вы можете сохранить подпрограмму directx на свой ключ, а затем загрузить эту подпрограмму из ключа и применить эффект ко всем изображениям в вашем приложении. Затем взломщик должен иметь возможность перехватить эту процедуру DirectX и применить ее правильно.
Еще одна возможность - использовать процедуры генерации случайных чисел ключа для разработки UID. Как только кто-то удалит функциональность ключа, все сгенерированные UID будут обнулены.
Лучше всего, однако, поместить на ключ функцию, специфичную для домена (например, всю процедуру генерации UID). В этом отношении у разных производителей будут разные возможности.
Сколько блокпостов вам принесут эти хитрости? Реально, это зависит от популярности вашей программы. Чем популярнее ваша программа, тем больше вероятность того, что кто-то захочет ее взломать и посвятит этому время. В этом случае у вас может быть несколько дней, если вы особенно хорошо умеете кодировать ключи. Если ваша программа не так популярна (скажем, всего несколько сотен клиентов), то наличие только одного ключа может быть достаточно сдерживающим фактором, не делая ничего умного.