Ну честно, пока не как, тупо по принципу «если я заплатил за программу, то никому ее из жадности не дам скопировать», а вообще поставил этот пункт в туду через привязку к сериникам компа
ну я думаю что нужно использовать мать+мак. да и потом знаете, перебивать мак адрес на всех компах в локалке чтобы запустить приложение — это как то уже перебор
так и все современные программы взламываются ;) Но мне кажется вряд ли кто то будет менять свой MAC адрес сетевой карты ради этого.
Другой вариант это серийный номер логического диска, на который установлена программа, но после форматирования он меняется.
В современном мире без VM, шифрования блоков кода ассиметричными алго и различными креативными подходами вообще никуда. Даже киддисы уже умеют декомпайлить дотнет (рефлектор + плагины), пользоваться деобфускаторами в интерактивном режиме, разбирать вермишели.
ExeCryptor снимается уже давно автоматом (чего говорить об ASProtect'e & etc), Code Virtulizer почти отдался отцам и много других моментов (снимают Темиду и иже с ними). Trivium имеет StarForce в хвост и в гриву. Лицензионный ключ — это самый маленький кирпич в система защиты.
В вашем варианте: кейген пишется без проблем, защиты от патчинга нет в принципе, перевод даты не мешает использовать софт и много других моментов. Забудьте про такой подход даже когда расчитываете, что наткнетесь на лопухов.
Вас послушать так вообще лучше от заработки отказаться, как говориться «волков бояться в лес не ходить». Я повторяюсь что у меня не стоит задача сделать супер защищённую программу, мне нужно сделать минимальную защиту, так сказать пыль в глаза.
Я как раз и говорю о том, что времена поменялись. Понятие минимальной защиты сильно изменилось. Не говорю о том, что вы должны бросить вашу специализацию и взяться за написания систем защит. Я лишь предупреждаю вас, что если вы действительно не хотите потерять деньги на потенциальных клиентах, которые могут получить ваш софт бесплатно — вам требуется пересмотреть подход.
Простой способ добавить поддержку файлов лицензий в Ваше приложение .Net