Exe должен обращаться к определенному файлу, смотреть там ключик, сопоставлять со своим, и если они равно, дать работать.
Как зашифровать ключик в этом файле, чтобы пользователь сам не мог изменить его? Ключом может быть и дата, до которой должна работать программа.
Лучше хранить не сам ключ, а hash. Использовать System.Security.Cryptography. Про криптографию в MSDN можно почитать вот здесь:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpguide/html/cpconcryptographyoverview.htm
Пример:
Hash = FormsAuthentication.HashPasswordForStoringInConfigFile(Key, "sha1")