Есть приложение на C# WPF. Нужно, чтобы по окончании своей работы оно самоудалялось без следа. Как склонить его к суициду?
Или может есть более гуманные способы реализации "одноразовых" приложений, когда клиенту предоставляется программа, воспользоваться которой по назначению он может только один раз?
e_danilchenko:
Например. Пользователь загружает дистрибутив. Покупает у вас ключ на запуск программы. Программа при запуске спрашивает ключ у пользователя, лезет на сайт, где скрипт проверяет действительность ключа. Если ключ действительный, то скрипт возвращает положительный ответ. После чего помечает данный ключ, как использованный.
e_danilchenko: А что тут думать, человек запоминает ответ "ключ подошел" и выдает ее вашей программе сразу без выхода в internet. Ключи больше не потребуются.
Самоудаление файла есть несколько способов, но они бесполезны когда пользователь знает об этом и делает копию или снимок виртуальной машины.
Можно в протокол обмена добавить рэндомное число. Клиент генерит случайный код, отправляет на сервер вместе с регистрационным кодом, сервер шифрует этот случайный код своим закрытым ключом и отправляет результат клиенту. Клиент расшифровывает ответ своим открытым ключом и если результат совпадает с отправленным, то сервер гарантировано наш.
Или почитать еще про алгоритмы защищенных каналов связи.