Ovviamente non sicuro al 100% dato che esistono i programmi per deoffuscare ... (per non parlare dei "rimedi" a molte chiavette ...)
Beh, come tu insegni Oregon, in .NET nulla è sicuro dal reverse enginering.
Però vale il discorso "se il gioco vale la candela". Nel mio caso un eventuale "malintenzionato" se fosse così bravo da deoffuscare (operazione probabilmente abbastanza abbordabile) e da bypassare le sicurezze della chiavetta (più difficile poichè uso un buon prodotto ed ho cercato di rendere la vita del meschino un po' più complicata), perderebbe sicuramente meno tempo a rifarsi l'applicazione copiandone le funzionalità.
Quindi alla fine spenderebbe meno.