Вы пытаетесь решить что-то, что невозможно решить. После того, как вы предоставите приложение клиенту, а клиент развернет его на своем компьютере, он, конечно, может делать все, что захочет, с вашим приложением. Даже если вы жестко запрограммируете некоторую проверку безопасности в приложении, клиент может перепроектировать и изменить ваш код. Вы можете уменьшить свои шансы, используя некоторую обфускацию ваших библиотек, но все же все, что развертывается на клиентской машине, можно обмануть. Вот почему варез существует, и нет пуленепробиваемого решения.
Если вы не хотите, чтобы клиент обманывал вас, создайте приложение как веб-сайт и разместите его на своих серверах. Клиент будет оплачивать доступ/учетную запись, и он не сможет избежать вашей стратегии лицензирования.
Если вам нужна стратегия высокого качества лицензирования, которую сложнее обмануть, попробуйте купить существующее решение вместо того, чтобы создавать свои собственные.
Единственная проблема: я могу даже перезаписать жестко закодированные переменные отражением (если я знаю структуру). Поэтому я могу ввести другой открытый ключ. У вас есть идея, как решить эту проблему? – Mimefilt
IMO, если вы можете взломать клиента, тогда вам ничего не поможет. Если вы можете изменить приложение (и сменить открытый ключ, скомпилированный в него), то что перестанет просто удалять код проверки сервера? – Snowbear
Конечно, он может создать новое приложение, основанное на нашем исходном коде. Но это занимает очень много времени и много мастерства. Отражение значения выполняется за несколько минут. Но, возможно, вы правы. Даже Bilzards «Star Craft 2» был «взломан», – Mimefilt