Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Applicare Licenza Key c#
Forum - C# / VB.NET - Applicare Licenza Key c#

Avatar
danielerew (Normal User)
Newbie


Messaggi: 15
Iscritto: 10/06/2011

Segnala al moderatore
Postato alle 6:58
Martedì, 19/07/2011
Volevo applicare un piccolo serial number ad un mio applicativo.
Protezione molto semplice.

tipo estrazione id della machina o qualcosa che impedisca di non poter installare quel prodotto su 2 macchine in contemporanea ed attivazione programma tramite seriale.

Avete idee per c#? ciao e grazie.

Daniele


Prima o poi i nodi vengono al pettine...poche balle, piu serietà...
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 10:08
Martedì, 19/07/2011
Per impedire che venga installato su due macchine diverse, ogni istanza del programma deve avere accesso a tutte le chiavi, perciò deve esistere un database centralizzato che abbini prodotti ad attivazioni. Ergo, è necessaria una connessione a internet per verificarne l'autenticità.
Non puoi impedire la copia solo con il seriale, a meno che non lo calcoli tenendo conto delle informazioni della macchina su cui gira, ma per far questo è necessario che sia il client a generare il seriale (e questo è male) e che vengano prelevate informazioni relative all'hardware, le quali possono sempre essere soggette a cambiamento (e questo è male). Senza contare che dovresti comunque esporre l'algoritmo di verifica nel codice del programma (e questo è anche peggio).

ciao e grazie per la risposta effettivamente il mio pensiero primario è stato quello di sfruttare internet e un database ma mi sono anch edetto e se il tipo non avesse internet come si potrebbe bloccare ilprogramma? - danielerew - 19/07/11 20:17
non vedo il tasto rispondi su questo topic è normale? - danielerew - 19/07/11 20:50
e se si riscrivesse un settaggio in qualche punto? L esempio postato da thejuster fa qualcosa d interessante alla fine lato client potrebbe essere la soluzione migliore alla fine facendo un controllo anche lato server pero dopo l attivazione chiaramente bisogna salvare un settaggio lato client.. - danielerew - 20/07/11 07:33


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 10:45
Martedì, 19/07/2011

lascia perdere, una cosa del genere in C# se non fatta veramente ma veramente bene è perfettamente inutile e fa sprecare un sacco di tempo che invece potrebbe essere dedicato ad altre features.

ho visto diversi programmini in vb che pero la cosa funziona almeno apparentemente prendono lid della macchina in seguito fanno un attivazione con internet nel caso si cambiasse macchina e si utilizzasse lo stesso seriale non funzionerebbe secondo me registra qualche dll nel pc o almeno viene mod - danielerew - 19/07/11 20:19


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 10:46
Martedì, 19/07/2011
se può interessarti

http://www.pierotofy.it/data/programs/Visual_Csharp_dotNET ...

per registrarti e creare una Key

http://rmk2.altervista.org/PASS/

Per attivare il programma però e obbligatorio avere la connessione ad internet.
perchè recupera le chiavi direttamente dal webserver.

se ti interessa questo tipo di protezione puoi usare tranquillamente la lib anche per scopi commerciali o non.


ciao non ho trovato la libreria PassLib per C# ma solo per python utilizzo lo studio 2010..molto interessante il secondo link non mi fa scaricare nulla devo registrarmi? - danielerew - 19/07/11 20:37
uhm forse ti sei sbagliato la lib e per net. che sia C# non importa, puoi usare le stesse funzioni per il net. questo sorgente ti mostra solo come inizilizzare la lib, che la trovi in bin si chiama Passlib.dll , la registrazione al sito ti serve come identificativo, cioè registrandoti puoi generare - Thejuster - 20/07/11 00:41
le chiavi di attivazioni da consegnare all'utente, quando l'utente avrà usato la chiave per registrare il programma, la chiave si autodistrugge, dandoti la possibilità di generarne un'altra. questo serve in modo che l'utente una volta che ha usato la chiave non può piu usarla perchè non e valida. - Thejuster - 20/07/11 00:42
Quindi la dll fa in modo che si agganci a questo sito. A quanto vedo si possono generare diverse key molto interessante.Pero sarebbe meglio che la logica la impostassi io e nonutilizzassi fonti esterne sconosciute al di la che funzionino. forse la cosa migliore è quella di sfruttare que !Properties. - danielerew - 20/07/11 07:14
si, però poi devi generarti una nuova chiave per ogni programma e poi sarebbe facilmente hakkabile con un reflector con un buon plug-in. invece il sistema che ho fatto io, puoi sbloccare il programma solo con la key che viene generata tramite il tuo userid. quindi anche se io ne generassi una e prov - Thejuster - 20/07/11 11:06
proverei ad inserirla non funzionerebbe. serve una key che sia stata generata dal tuo account. - Thejuster - 20/07/11 11:07
A che bravo non avevo capito che era tuo il cod..infatti va bene pero tu registri anche un seriale nell applicazione o dai un riferimento perche a regola facendo una prova anche senza connessione funziona poi sicuramente c saranno dei controlli di verifica all avvio..si per il reflector è vero.... - danielerew - 20/07/11 23:44
certo che verifica all'avvia. ma eseguire la verifica devi connetterti al server dando la tua user e password non chè il primo codice che io inserisca funzioni, infatti ti apre lo stesso la schermata dei codici ma qualunque inserisci ti dà errore, perchè il programma non riesce a recuperare nessuna - Thejuster - 21/07/11 09:03
chiave valida - Thejuster - 21/07/11 09:04
si si certo quello che non capisco in realta è come e dove dire al programma di check di attingere i dati. Se non sono connesso ed ho gia fatto l ativazione alla fine il programma funziona lo stesso. Questo perche la verifica viene fatta lato client il probl è dove mettere l elemento che da la conf - danielerew - 21/07/11 13:36
dovrei in pratica far scrivere al programma nel momento dell attivazione qualche cosa lato client che so una dll un file di registro..un file di testo di conseguenza seil programma trova quel file di conf con determintai dati il programma funge anche senza internet.. - danielerew - 21/07/11 13:38
No, semplicemente impostare true una variabile contenuta nelle proprietà. la variabile può essere cambiata solo se la chiave è uguale a quella che contiene il server. visto che viene generata casualmente non c'è un algoritmo di cifratura, o un qualcosa che è possibile tentare di creare un Keygen. - Thejuster - 21/07/11 17:22
quindi essendo totalmente random è impossibile da tentare di scovarla. tantomeno con il reflector esempio si può fare qualcosa per impostare true quella variabile. anzi un modo ci sarebbe ma preferisco non dirlo, altrimenti rileverei il punto debole del mio sistema di protezione :) - Thejuster - 21/07/11 17:23
ma non si può fare tramite c# o qualsiasi altro modo, pensandoci bene sono giunto a come scoprirla ma solamente perchè ho sviluppato io quella lib. quindi tranquillo e quasi impossibile da superare questa protezione - Thejuster - 21/07/11 17:25
per applicare questa lib a 2 programmi ad esempio dovrei fare 2 registrazioni sul tuo sito alla fine? e poi inserirli nel codice dell app e quindi rebuild dell applicazione per consegnarlo all utente?nel casoin cui il tuo sito fosse ko problemi non ce sne sarebbero? ciao e grazie - danielerew - 21/07/11 23:45
no basta una sola registrazione per generare diverse chiavi di attivazioni, fatto la registrazione e login hai un pulsante che ti genera delle chiavi di attivazione. nell'app devi inserire i tuoi dati di accesso, ma assicurati di offuscare il sorgente!! e salva la pass in una o più variabili esemp - Thejuster - 22/07/11 09:30
string a = "p" , b = "o" , c="i" e identifichi così Password = a + c + a + a + b; Sarebbe pippo. in parole povere per chi tentasse ad usare il reflector gli apparirà tutto molto incasinato. fatto questo ti basta segure l'esempio - Thejuster - 22/07/11 09:35
http://rmk2.altervista.org/PASS/support.php cmq lo usano diverse persone, non sei il primo e spero nemmeno l'ultimo :) poi per problemi contattami in pvt altrimenti incasiniamo il forum perchè stiamo andando già un pochino OT. - Thejuster - 22/07/11 09:40


PM