Воспользуемся этим Сделаем новый проект, добавим Reference на Expresso. Смотрим, что получилось Ну кто бы сомневался. В данном случае вс оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего лишь пришлось бы использовать Reflection для доступа и вс бы свелось к исходной задаче. Думаю понятно, как можно пробовать защититься от этого проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной. Но все эти защиты приведут к тому, что злоумышленник будет использовать. Физический взлом программы. Тут уже вс серьзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно помните, я писал, что MSIL это такой же язык как и C. Для декомпиляции нам понадобится утилита из SDK под названием ildasm, а для компиляции компилятор из. NET Framework ilasm. Запускаем ildasm, открываем Expresso. Находим уже рассмотренный метод Is. Registered и добавляем немножко своего кода без меток Потом берм ilasm и собираем вс назад не забыв подключить ресурсы. Что делает данный код устанавливает нужное имя для регистрации не обязательно, и возвращает статус, что вс хорошо. Чтобы было понятнее, так это выглядит в рефлекторе, в CТ. Ну и обратно установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой прим пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка. При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами 4 симпатичных строчки на C меньше, но некрасиво. Чем жертвует злоумышленник подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придтся разбирать их все и собирать их заново, но если он с этим справится, то у него будет своя версия программы подписанная его ключом. Защиты от всего этого безобразия собственно немного проводить обфускацию или выносить часть логикипроверки защиты в нативный код. Заключение. Думаю я рассказал, как просто вс можно разломать на. NET, если создатель не приложил усилий для защиты своей программы. А вы уж решайте, стоит ли делать защиту и тратить на это время и ресурсы. А может просто сделать web систему, или же бесплатную ограниченную версию. Решать разработчикам.