PDA

View Full Version : [JAVA] Proteggere un software creato


chris9191
05-07-2012, 18:18
Ciao a tutti,
mi chiedevo se fosse possibile proteggere dalla distribuzione senza permesso un software creato da me con Java.
Magari con una chiave di attivazione fornita all'utente, o altro.
Voi cosa ne pensate? Come fareste?

Grazie in anticipo.

ingframin
06-07-2012, 08:15
Dipende quanto vuoi spendere...
La prima cosa che mi procurerei è un code obfuscator
http://proguard.sourceforge.net/

Per quanto riguarda le licenze puoi:

1) fornire una chiave che viene controllata ad ogni apertura del programma via internet (se il tuo server dà l'ok il programma si apre) che è poi quello che fanno molti programmi professionali tipo Cadence Allegro
(Ad esempio microsoft ha questo http://technet.microsoft.com/it-it/library/cc738708(v=ws.10).aspx )

2) Fornire una chiave hardware ai clienti, se quella manca il software non parte
http://www.dinkeydongle.it/dongles.php?gclid=CM3aqsyxhLECFUxlfAod2TbIPw

In tutto questo l'unica cosa che accomuna tutto è sperare nel buon cuore e nell'onestà dei tuoi clienti. Mio padre ha dei software con chiave hardware e non si sognerebbe mai di disassemblarli per rimuovere la protezione né mai lo farei io, ma tecnicamente sarebbe possibile. In pratica ogni contromisura non fa altro che alzare la soglia di bravura di chi è in grado di piratare il tuo programma ma non lo mette mai al sicuro.

In giro ci sono anche dei compilatori per trasformare il codice java in codice macchina (come per C++ ad esempio) sia free come gcj che a pagamento. Anche li, rendono solo un po' più difficile la cosa ma non ti aspettare di essere al sicuro al 100%.
Diciamo anche che a meno che non stai sfornando l'applicazione del secolo non credo che ci siano schiere di hacker pronte a sfidarti e decriptarti il programma, con le precauzioni che ti ho suggerito io dovresti essere sicuro contro l'utente medio.