Ciao,
volevo proteggere un sw di mia creazione..
leggendo nel forum.. ho trovato diversi metodi e
avrei deciso di limitare (per le copie non registrate) alcune funzioni con una dll...
Qualcuno sa dirmi come fare? :master:
Ciao,
volevo proteggere un sw di mia creazione..
leggendo nel forum.. ho trovato diversi metodi e
avrei deciso di limitare (per le copie non registrate) alcune funzioni con una dll...
Qualcuno sa dirmi come fare? :master:
... non può piovere per sempre!
Non c'e' un modo preciso ... anzi ... non mi pare ci sia un modo valido tecnicamente ...
Stiamo già vagliando alcune tecniche in questa discussione.
Dai un'occhiata per vedere se c'è qualcosa che può essere d'aiuto.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
grazie alka, l'avevo già letta..
interessante ma di poco aiuto pratico!
A me interessa sapere come limitare una funzione del mio programma con l'ausilio di una dll..
![]()
... non può piovere per sempre!
La questione e': chi/cosa dovrebbe chiamare questa ipotetica dll ? (una dll solo "presente" sull'hard-disk dell'utente non produce nessun effetto, ovviamente...)Originariamente inviato da startac130
grazie alka, l'avevo già letta..
interessante ma di poco aiuto pratico!
A me interessa sapere come limitare una funzione del mio programma con l'ausilio di una dll..
![]()
Se intendi: dato un programma gia' bello e fatto (compilato e funzionante), aggiungere una dll che ne limiti le funzionalita' penso sia proprio impossibile !
Se invece intendi: il prog. gia' usa una dll, fare in modo che solo un utente registrato possa usare tutte le funzionalita' del programma, allora...quella discussione da' degli spunti interessanti e pratici (a meno che per "pratico" tu non intenda del codice gia' pronto !)
Ciao !
IceCube_HT (VB6 fan Club)
beh, io ho realizzato un sw gestionale (bolle, fatture, ecc)
vorrei semplicemente proteggerlo dalla copia e limitando le funzionalità con una dll,
questo dà la possibilità di far "provare" gratuitamente il programma..
chi risulterà interessato potrà registrare il sw e quindi accedere a tutte le sue funzionalità
ma come si può realizzare in modo pratico?![]()
mi basta un semplice esempio o una breve spiegazione di cosa fare per realizzarlo.
Grazie, ciao.![]()
... non può piovere per sempre!
Sembra che questa dll debba essere una panacea: non puoi semplicemente integrare la protezione direttamente nel programma?
Amaro C++, il gusto pieno dell'undefined behavior.
certo che posso..
il punto è:
utilizzando una dll potrei semplicemente inviare via internet una nuova dll a chi acquista il sw, se la protezione la integro nel sw:
1. mi pare + facile da aggirare
2. non ho la possibilità di verificare l'avvenuto pagamento via carta di credito (on-line)
... non può piovere per sempre!
Una dll è più vulnerabile (è un componente separato) ed in VB6 è piuttosto complesso creare due dll con lo stesso CLSID e con compatibilità binaria (quindi intercambiabili). In più la dll dovrebbe contenere una funzione tipo "IsRegistered" (o simile) che dovrebbe restituire True o False; per un programmatore con un minimo di sale in zucca sarebbe abbastanza semplice creare una dll equivalente alla tua con il tuo stesso procedimento che faccia credere al programma di essere una copia registrata. Una buona soluzione invece sarebbe spostare tutto il codice esclusivo della versione registrata nella dll separata, che nella versione trial conterrebbe solo funzioni vuote (o che visualizzano un messagebox con la scritta "Disponibile solo nella versione registrata del programma"). Un'ultima (e più robusta) possibilità invece è quella di creare due main exe differenti per la versione trial e quella full, servendosi delle funzionalità di compilazione condizionale di VB, tipo
Questa soluzione ha il vantaggio di essere abbastanza robusta e semplice da mantenere.codice:'Il gestore eventi di un pulsante che avvia una funzione disponibile solo nella versione registrata Public Sub cmdX_Click() #IF REGISTERED THEN 'fa quello che deve fare #ELSE MsgBox "Questa funzione è disponibile solo nella versione registrata del programma" #END IF End Sub
Amaro C++, il gusto pieno dell'undefined behavior.