2) Normalmente viene fornita una libreria già pronta.
3) Se il tuo programma viene eseguito su macchine di terzi hai già perso. Se l'utente del tuo programma ha privilegi di amministratore sul PC su cui gira il programma, nulla gli impedisce di agganciare un kernel debugger, fare reverse engineering del tuo codice e bypassare esattamente il punto in cui viene controllato se la chiave è presente.