Newsgroup: it.comp.lang.visual-basic
Titolo: PROTEZIONE SOFTWARE

Gradirei dei consigli che mi permettano di proteggere i miei prg dalla
copia, etc..
Non penso però sia possibile visto che una copia pirata di qualsiasi
prg la trovi dove vuoi.!!!
Sono ben accetti consigli di qualsiasi genere
Perfavore rispondere alla seguente e-mail: 
fa...@interplanet.it
 

prova con le chiavi hardware....

Partendo dal concetto che la copia ha i suoi vantaggi (se tutti dovessero
comprare CD per ascoltare musica non ci sarebbero più concerti)
Io ho in mente un'idea, non ho ancora trovato il tempo di provarla (se
qualcuno lo fa e mi dice che succede....)
L'applicazione potrebbe, prelevare delle semplici informazioni dal PC o dati
utente o qualcos'altro, tradurle magari con un xOr e scriverle accodandole
all'EXE dell'applicazione. Ovviamente questo lo dovrebbe fare solo la prima
volta. Le volte successive dovrebbe solamente fare la verifica.  Al momento
della scrittura iniziale dovrebbe memorizzare da qualche parte, la
dimensione originale dell'EXE in modo che le volte successive il programma
sa che da una data posizione in poi iniziano le informazioni di protezione.
Addirittura potrebbe essere  Setup1 del Kit di installazione che fa questo
(per evitare installazioni multiple.)
Ora, tutto questo tecnicamente è possibile. Ma poi l'eseguibile va?
Ciao, Fabio.

...oppure usare l'Api che restituisce le informazioni sul disco fisso, tra
cui il nr° di serie, e farci dei ragionamenti sopra tipo xor ecc...
Il vantaggio di questo metodo è che il programma si può tranquillamente
copiare ma funziona solo sul PC che ha come serial number HD il codice di
sblocco. Spero di essermi spiegato bene, se ci sono problemi chiedi pure.
Ciao

Ecco il Codice per il Serial Number dell'HD
Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer,
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal
nFileSystemNameSize As Long) As Long
Function GetSerialNumber(strDrive As String) As Long
    Dim SerialNum As Long
    Dim Res As Long
    Dim Temp1 As String
    Dim Temp2 As String
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0,
Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function
'Call MsgBox GetSerialNumber("C:\")
Ciao

 
Bisogna vedere a che livello vuoi proteggere il tuo sw.
Sicuramente la strada più sicura e che reca meno inconvenienti è quella
delle chiavi HW, sono facili da gestire e offrono una protezione
garantita, questo ovviamente comporta un costo aggiuntivo e purtroppo, a
volte, vengono vendute per quantità.
Un'altra strada è quella SW. Qui c'è solo da fare lavorare la fantasia.
Il sistema da più suggerito è quello del numero di serie dell'HD, ma
questo comporta il conoscere già questa informazione prima di
distribuire il SW, allora a questo punto sarebbe meglio legarla ai dati
dell'utilizzatore (es. Codice Fiscale/Partita Iva) attraverso un
algoritmo di controllo.
Io personalmente su pgm. economici ho adottato questa soluzione:
creo un file contenente in forma criptata i dati dell'utilizzatore e
copio questo file in una directory standard del PC (es. windows), il mio
SW visualizza in ogni schermata ed ogni stampa i dati dell'utilizzatore
stesso. 
Con questa possibilità puoi anche inserire un codice di verifica nel
pgm. (questo ti comporta la ricompilazione per ogni nuova installazione)
e confrontarla col file di cui sopra.
Cosa ne pensi?
Franco
--
Automatic posted from 
ro...@edy.ivg.it
 [194.184.152.232]
via Mailgate Server - 
http://www.mailgate.org


Allora perché ho provato e a me funziona?...
Fabio

algoritmo di controllo.
[...]
Ciao, posso dirti per esperienza personale che NON ESISTE un modo
sicuro al 100% per proteggere i programmi dalla copia. Il mio lavoro è
(oltre ad altre cose) anche cercare di elaborare delle strategie di
protezione per il software, e quindi conoscere anche le procedure del
"nemico" (hackers, etc.).
Una volta VB era considerato uno dei linguaggi più "sicuri", in quanto
non produce un vero e proprio eseguibile, bensì un preprocessato
contenente centinaia di chiamate alle DLL. Se da un lato questo può
scoraggiare gli utilizzatori di debbuggers vari (tipo SoftIce),
dall'altro ha consentito ai pirati di trovare, nelle DLL stesse,
quelle porzioni di codice (QUINDI SEMPRE LE STESSE !) che effettuano
comparazioni tra stringhe, chiamate alle porte di I/O, etc...
E' vero che l'hacker da due lire difficilmente possiede le capacità
per effettuare certe operazioni, ma comunque il problema rimane...
Quello che posso consigliarti io è :
- non mandare in giro dimostrativi PIENAMENTE funzionanti che si
possano abilitare con un qualsiasi codice (ci vogliono 10 minuti per
forzarli, qualsiasi sia la versione di VB, dalla 3 alla 5 compresa)
- crea una versione shareware PRIVATA FISICAMENTE di alcune porzioni
di codice (quelle più significative)
- usa se puoi dei custom control (vbx, ocx). Al 90% dei casi mandano
"in palla" l'operato dei più comuni decompilatori, quelli che si
trovano in Rete. Non so come funzionino quelli commerciali...
- manda all'utente finale una chiave hardware e metti nel sorgente
quente più chiamate puoi alla stessa
- considera una percentuale di soft che ti verrà "piratato" come fosse
"fisiologica" e (a seconda del target del programma) cerca di
ricaricare questa percentuale sul costo dello stesso... La stessa
Microsoft fa così, altrimenti non si spiegherebbero i quintali di soft
piratato e gli altissimi costi che l'utente si trova sul groppone...
Spero di non averti spaventato, ma è la realtà con cui noi
programmatori ci troviamo a dover combattere...
Saluti
Wolf
L8Max(r) ...il massimo per il Lotto !
http://www.geocities.com/ResearchTriangle/3147
wolf66_...@geocities.com
[Attenzione: indirizzo e-mail alterato per evitare spammings.
Togliere _toglimi_ per contattarmi.]


wrote:

C'è solo un problema: di solito si vende un programma, non un
programma su un determinato hard disk. Se al cliente muore l'hard disk
mentre tu sei in ferie ci sono gli estremi per una causa, credo.
Anche se non ci fossero gli estremi legali, la cosa rimarrebbe
eticamente scorretta. Il cliente che ha comprato il tuo programma ha
il diritto di usarlo senza vincoli del genere. Tanto più che in giro
si sbrindellano HD molto più in fretta di quanto credi: se per caso ti
andasse bene e vendessi molte copie poi passeresti la vita a
rispondere a quelli che hanno riformattato tutto...
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------

mentre tu sei in ferie ci sono gli estremi per una causa, credo.
Hai ragione ma questo sistema non l'ho inventato io e ci sono molte software
house (Vedi I.S.A.)
che legano l'abilitazione del PRG al disco fisso su cui č installato e ti
costringono, ogni volta che formatti tutto, a richiedere un nuovo codice di
attivazione (ovviamente gratuito) che viene dato solo dopo l'identificazione
del cliente che lo richiede.
Ovvio che il sistema piů sicuro resta comunque una chiave HW.
Ciao


Che cosa è una chiave HW?
Grazie Bruno

>Che cosa è una chiave HW?
Chiave HW = chiave HardWare

 Grazie Bruno
Quelle che monti sulla porta parallela (o quella seriale).
-- 
Hi, Ciao
Ettore                 By -MES-
http://www.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

...


 
varia da 60'000 a 120'000 circa, dipende dal tipo e dal costruttore, + starter KIT ( altre 100 credo)
Poi, ripeto, dipende dal costruttore.


Togliere _toglimi_ per contattarmi.]

Che prezzi hanno le HW (+ o -) ?
  Tra le 30 e le 100 kLire l'una, a seconda della marca e del modello.
  Ciao :-)
  Massimo
  Nell'indirizzo, sostituire DIESPAMMERS con MC1258
  In the address, replace DIESPAMMERS with MC1258

 Quelle che monti sulla porta parallela (o quella seriale).
Aaah la stampante...
:-) :-) :-) :-) 
------------------------------------------------------
Emanuele Quinto
D.I.I.A.R. Politecnico di Milano
Phone:     +39 2 23996432
InterNet:  
qui...@amb1.amb.polimi.it
 
qui...@italymail.com
WWW:       
http://www.geocities.com/SoHo/Studios/2269/
 
           Sometimes you can only find something 
               by losing it
------------------------------------------------------

Chiave HW = chiave HardWare
Le chiavi Hw costano parecchio,
secondo voi la pena autocostruirsele?
Magari una cazzata (tipo che ti fa l'and tra due bit mandati dal pc e
poi rispedisce dentro il risultato), però fa il suo bell'effetto.
che dite?

 
Sono  vecchie discussioni....
Certo che si puo', ma e' anche facile copiare il circuito. E poi alla parallela non ci
puoi attaccare piu' nulla, mentre le chiavi HD serie sono trasparenti alla parallela.


>puoi attaccare piu' nulla, mentre le chiavi HD serie sono trasparenti alla
parallela.
Scusate l'intromissione e la mia ignoranza: che cosa sono le chiavi HD? E in
che modo proteggono il software? Sono efficaci?
Grazie a tutti.
Paolo FERRARESI.

 
Sono delle scatolette che attacchi sulla porta parallela (ha un maschio da un lato ed una femmina dall'altro per poter
attaccare la stampante) e che forniscono informazioni univoche (ogni chiave ha le sue) al PC.
La chiave la si interroga con le librerie che fornisce il fornitore delle chiavi.
Per proteggere il SW occorre implementare le funzioni di interrogazione della chiave HD  nei propri
programmi, e controllare che il risultato dell'interrogazione sia come te lo aspetti, diversamente impedisci l'uso del
programma (lo chiudi).
Risultato, con chiave HD il prg funziona, senza NO.
