Najbolji nacin da zastitis svoj softver je custom hardverski uredjaj koji sadrzi funkcionalni deo tvog programa (recimo neku bitnu funkciju) u silikonu. Recimo da taj uredjaj kacis na USB/LPT port.
Dakle - bez toga tvoj program ne moze da radi, jer on zove tu funkciju koja se nalazi na silikonu napolju - znaci bez fizickog posedovanja tog uredjaja nemoguce je izvrsavati tvoj softver.
Naravno - i ovo moze da se probije, ako je tvoj projekat jako skup, cena rezanja plastike laserom i skeniranja substrata nije nikakav problem za ozbiljne pirate ili tvoju konkurenciju - i tu postoje resenja, recimo potpapanje cipa u neku specijalnu plasticnu masu koja ne moze da se rastvori bez fizickog unistenja cipa.
Elem, ta funkcija (ili funkcije) bi morali da budu malo komplikovaniji kako gusar ne bi mogao da emulira istu funkciju (da uradi reverse engineering tako sto analizira ulaz i izlaz)
Ovo je najbolji nacin zastite softvera, ali ujedno i najskuplji - proizvodnja folije za cip je sve samo ne jeftina rabota :)