Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Licenze per ActiveX

So di tornare su un argomento trito e ritrito, ma mi sto perdendo in una
banalità.
Qual è secondo voi il metodo più pratico per assegnare ad un cliente un
serial number per un ActiveX (in particolare DLL), in modo che non possa
essere usato l'Ax senza codice.
Non mi interessa avere un'alta sicurezza (tanto se vogliono craccarti il
prog lo fanno lo stesso), voglio solo impedire all'utente medio di usare la
dll senza una licenza.
Idee pratiche?
Grazie, Ciao.

essere usato l'Ax senza codice.
Potresti generare un GUID: 
HOWTO: Use CoCreateGUID API to Generate a GUID with VB (Q176790)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q176790
-- 
hth, hal

 HOWTO: Use CoCreateGUID API to Generate a GUID with VB (Q176790)
Non ci siamo :)
Non mi interessa come creare un SN, ma come gestirlo per far sě che solo chi
ce l'ha puň usare la mia dll.
Ciao

Beh la cosa più idiota che mi viene in mente è quella di creare una
proprietà
nascosta della tua dll, che in quanto nascosta non la vedi con l'object
browser,
e quindi puoi interrogare a tuo piacimento.
Ora dentro a tale proprietà potresti usare inerire un guid come ha detto hal
e poi, fai un confronto dentro al progetto che chiama con la proprietà della
dll ... se passi lo stesso guid allora vai oltre, diversamente restituisci
un messaggio
di errore.
Per complicare un pò di più la vita, potresti implementare nella dll come
modulo
o come dll esterna un algoritmo di criptazione. Così facendo potresti
passare
alla tua proprietà un guid con una chiava, fare uno scrambling o un hash3 o
quel che ti pare con una password e poi fare il confronto di cui sopra.
Questo sicuramente è più evoluto, ma sempre cracckabile.
Puoi a sto sistema aggiungere una cross-reference, ovvero che la tua dll
vada
a leggere una specifica password dal tuo progetto chiamante, con quella fare
lo scrambling del guid che passi e se ottieni un dato guid che potresti
raffrontare
con uno contenuto dentro il progetto chiamante vai oltre .....
Non ho mai fatto nulla del genere, ti parlo solo di teoria, anche perchè
come
hai detto, se ti vogliono cracckare qualcosa, lo fanno. Ragion per cui se
devo
proteggermi qualcosa lo faccio con le chiavi hardware che col piffero che ti
crakkano.
Magari se ti riesce ad accenderti la lampadina con quello che ti ho detto,
posta
qualcosa sul SC.
Ciao Andrea

 e quindi puoi interrogare a tuo piacimento.
:)
Già, ma se è nascosta come faccio a sapere che l'utente X ha la chiave?
hehe, sembra facile.
Ciao

 hehe, sembra facile.
Ma anche la proprietà che permette di fare un ciclo for ... each ... next
delle collection è nascosta, però la usi senza sapere che esiste.
Ora tu prova a fare una dll, chiamala come ti pare e mettici dentro una sub
ciccio
dentro ciccio ci metti msgbox "ciao".
Adesso compila, poi apri un nuovo ide, referenzi la tua dll, quindi fari dim
x as new
tuoprogetto.tuaclasse. Dentro form_load del progetto metti x.ciccio.
Lancia il progetto ... magia  .... vedi un bell'msgbox con ciao.
Se però dall'object browser cerci di vedere le proprietà esposte ... non
vedi nulla.
Se a questo esempio applichi quello che ho detto prima ottieni un codice
segreto
che puoi utilizzare a tuo piacimento senza che gli altri sappiano che c'è.
Gli dai un
nome strano, in modo che non sia rintracciabile a "tentativi" ... e hai una
mezza specie
di protezione.
Ciao Andrea

 vedi nulla.
A meno che non selezioni "mostra membri nascosti"... :(
Ciao