Italian Product key

GIS

Well-Known Member
Licensed User
Buongiorno,
Sto preparando un software per poter essere venduto. Mi sto imbattendo nella problematica della protezione del software.
A parte la creazione di un file sul server con i codici univoci(Product key) sto anche pensando al fatto che il proprietario lo disinstalli per poi reinstallarlo sulla stessa macchina.
Anche per la divulgazione illegale del software.

Ho pensato:

In fase di installazione li software controlla se è presente un file che creerò se non presente. In questo caso si procede con la richiesta della Product Key. Una volta inserita, prendo dal server il file con le Key, verifico se è presente e se lo è, cancello la Key dal file. Se l'utente lo disinstalla e reinstalla, controllo il file che ho creato all'inizio nella prima installazione se è presente non gli chiedo la Product key e lo installa normalmente. Certo c'è sempre il problema che trovino il file che ho creato, penso di nasconderlo bene ma non si sa mai.

Questo credo che scongiuri copie illegali. Il problema nasce se l'utente cambia pc o formatta hd. Se non trova il file creato nella prima installazione e neppure la key potrei dirgli di contattare l'assistenza.
Avevo anche pensato di leggermi un dato univoco del Pc ma la cosa non cambia in caso di sostituzione del Pc.

Voi cosa ne pensate o come fareste.

Grazie
 

amorosik

Expert
Licensed User

Di che ambiente di programmazione stai parlando?
 

GIS

Well-Known Member
Licensed User
Io parlavo in generale visto che è una procedura che si può fare in qualsiasi ambiente. Cmq quello che ho fatto è in Vb.Net
 

amorosik

Expert
Licensed User
Io parlavo in generale visto che è una procedura che si può fare in qualsiasi ambiente. Cmq quello che ho fatto è in Vb.Net

Si, che si possa fare in qualsiasi ambiente, va bene
Chiedevo per capire se stessi cercando di proteggere un programma 'inproteggibile'
Perche' da quel che mi sembra di aver visto, se parliamo di Android, un apk che fornisci per installare il programma, e' apribile abbastanza facilmente
 

GIS

Well-Known Member
Licensed User
a ok. L'ho davo per scontato che non parlavo di androind visto mi riferivo a Pc. Cmq no problem
 

sirjo66

Well-Known Member
Licensed User
Longtime User
io in VB.NET faccio così:
al primo avvio il programma, in base al MAC della scheda di rete, si calcola un "numero di serie" e lo mostra al cliente che dovrà poi comunicarmelo.
Una volta che il cliente mi comunica questo codice, ci faccio qualche elaborazione (MD5, chk16, operazioni varie eccetera), e mi ricavo un numero a X cifre che comunico al cliente e che dovrà inserire nel campo "codice di attivazione".
Se il cliente reinstalla il programma sullo stesso PC, i codici non cambiano.
Se lo installa su un altro PC il programma non funziona.
Ho comunque calcolato che una minima parte dei clienti ogni tanto cambia PC e quindi devo fornire nuovamente dei codici.
Se il programma è legato ad un userID univoco (ad esempio su di un mio programma per le autoscuole c'è un codice univoco rilasciato dalla Motorizzazione, in quel caso uso quello e non ci sono problemi di cambio PC).
TUTTI i sistemi di protezione sono comunque craccabili, sia chiaro, dipende dal grado di conoscenza dell'utente e se ne vale la pena
 

udg

Expert
Licensed User
Longtime User
Come sapete, gli schemi di protezione sono i più vari e dipendono sia da cosa si voglia proteggere sia dalle condizioni di riferimento.
Relativamente al cosa:
- evitare che acquistata una copia il cliente installi su enne PC (paghi 1 e prendi enne)
- evitare che una licenza venga utilizzata da due distinti clienti (sconto del 50%), ma anche più..
- evitare che il sw venga utilizzato oltre una certa data (da cui scatterebbe il canone di rinnovo)
- legare il sw ad uno specifico PC (bundle hw+sw?)
- etc
Per le condizioni di riferimento:
- i PC del cliente sono in LAN tra loro?
- il PC su cui si installa il sw ha accesso ad Internet e comunque necessita di tale accesso?
- il sw tratta dati specifici di un cliente (es. fatturazione)?

Il miglior sistema, in genere, è non rendere appetibile l'illegalità.
Se il costo è giusto e contenuto e la diffusione attesa non è da record mondiale, ci sono buone probabilità che nessuno si dia la pena di produrre copie pirata. E se anche si incapasse nel solito amico del nipote del vicino di casa, parleremmo di uno che non avrebbe mai acquistato regolarmente il sw e che, probabilmente, non si darà da fare per spacciare la copia piratata (a chi, poi? se non li trovi tu i clienti, vuoi che li trovi lui?)

Un altro buon sistema è prevedere aggiornamenti regolari. Questo è demotivante sia per il pirata che per l'eventuale cliente del pirata. Soprattutto se i costi della copia regolare restano sempre nell'ambito del costo contenuto ed affrontabile da tutti.

Qual'è il prezzo giusto? Domanda da un milione di dollari (come si suol dire). Un criterio è "adeguato al target" (quindi non un valore oggettivo del bene, ma il prezzo che quel target sarà disposto a spendere). Sembra strano, ma funziona.
Un altro criterio potrebbe essere: "costruire il sw mi è costato 10K, vorrei guadagnare 50K, e prevedo di vendere 1K di copie..quindi ogni copia va venduta a 60); ovviamente se sbaglio previsioni o pretendo di guadagnare troppo da un singolo lavoro..

Comunque, ognuno conosce la propria situazione, la propria capacità commerciale e il "valore intrinseco" del proprio prodotto. Così come sogni, aspettative e reali necessità.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…