PDA

View Full Version : Proggetto proteggi Software (in VB.Net)


Marco Pisa
07-05-2006, 10:16
ciao a tutti,

sto cercando di creare un software che protegga il mio progetta da duplicazioni illecite...

ho pensato di creare un serial (dell'applicazione) in fase di istallazione con all'interno il serial di un hardware; dopodiche cripato e scritto in un file nascosto, che verra letto dall'applicazione per verificare l'autenticità.

questo perchè il file Exe e un file completo che può essere copiato è duplicato senza problemi, basta la libreria (Framework 1.1)


vi chiedo un consiglio sul metodo? E in caso di appoggio come si fa per recuperare il serial di un HD o di un Processore

In caso non siate daccordo esponete qualsiasi idea...

Garazzie in anticipo a chiunque risponde....

Marco!!

mynos79
07-05-2006, 15:09
In VB.NET 2005 per trovare il seriale di un hd devi usare la funzione "GetVolumeInformation".

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, ByRef lpVolumeSerialNumber As Integer, ByRef lpMaximumComponentLength As Integer, ByRef lpFileSystemFlags As Integer, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Integer) As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MsgBox(GetSerialNumber("C:\"))
End Sub

Public Function GetSerialNumber(ByRef strDrive As String) As Integer
Dim SerialNum As Integer
Dim Res As Integer
Dim Temp1 As String
Dim Temp2 As String
Temp1 = New String(Chr(0), 255)
Temp2 = New String(Chr(0), 255)
' Se vi sono errori Res=0, altrimenti, se tutto e' andato ok, Res=1
Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
GetSerialNumber = SerialNum
End Function

Marco Pisa
07-05-2006, 16:04
(mynos79)
grazie tantissimo per il codice, ma cosa ne pensate per il metodo che utilizero per protegere il mio software?qualche altra idea e ben accetta!!

ancora grazie per il codice

morskott
07-05-2006, 21:30
Quello che penso è che proteggere un qualsiasi SW sia pura utopia, ci sarà sempre qualcuno che riuscirà a oltrepassare qualsiasi protezione tu possa "far uscire dal cilindro"!!!!!!


Il brutto delle SW House moderne è che investono miliardi in tecniche di protezioni che tempo qualche mese (in stime pessimistiche) sono violate dal cracker di turno, mentre risparmiando quei soldi potrebbero far costar meno i loro prodotti, in pratica se risparmiassero (i soldi dati per scoprire nuovi "inviolabili" sistemi di protezione) guadagnerebbero (con i soldi in piu delle copie originali vendute a minor prezzo)!!!!!


PS: Scusate l'OT

mynos79
07-05-2006, 23:40
Un metodo molto semplice ed abbastanza sicuro è quello di una chiave hardware tramite porta seriale o parallela ... gestibili in vb.net molto facilmente.
Se sai qualcosa di elettronica è molto facile creare una chiave hardware tramite un pic o un altro microcontrollore; ne vendono anche di già fatte di chiavi, basta solo programmarle e non costano molto.
So benissimo che si può crackare ... ma presumo che l' utente medio che utilizzerà il tuo software non abbia conoscenza approfondite di debug e assembly per poter trovare l' algoritmo della chiave hardware e bypassarla.
Il discorso dei seriali dei firmware dell' hardware può essere comunque una buona soluzione ... ma deve essere pianificata bene ...