Créer un shareware en VB.NET

Fermé
cs_Alien Messages postés 70 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 23 mars 2024 - 19 févr. 2014 à 17:51
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 - 3 mars 2014 à 21:58
Bonjour,

Je navigue depuis plusieurs jours à la recherche d'une méthode pour ajouter une gestion de code dans mon projet VB.net un peut comme un shareware,
non pas pour le rendre gratuit mais pour donner des codes d'utilisations à qui je veux.

j'ai trouvé très intéressant ce site ( la dernière rubrique en bas de page ) https://bidou.developpez.com/tutoriels/dotnet/securite/crypto/
évidement il n'est pas complet et j'aimerais avoir de l'aide pour rendre ce code
exploitable

Tous aide sera la bien venu :p

Par avance merci !



A voir également:

2 réponses

Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
Modifié par Kalissi le 2/03/2014 à 03:23
Bonjour,

Tu peux créer une première fenêtre qui demande un code et quand le code est valide tu ouvre ta fenêtre principal.

Et tu valide ensuite ce code selon un calcul mathématique
qui tu choisi.

Exemple de validation de code numérique (mot de passe) :



Private Sub btnOuvrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOuvrir.Click

Dim Valeur As String = Me.tbxMDP.Text
Dim Numero As Int64 = 0

If (Compteur < 4) Then
If (Int64.TryParse(Valeur, Numero)) Then
If Not Numero.Equals(0) Then
ValiderMDP(Numero)
End If
Else
Compteur += 1
End If
Else
End
End If

End Sub

Private Function ValiderMDP(ByVal pValeur As String) As Boolean

Dim Reponse As Boolean = True
Dim Somme As Int32 = 0
Dim Total As Int32 = 0

Dim Limite As Int32 = pValeur.Length - 1

If (Limite.Equals(9)) Then
For Boucle As Int32 = 0 To Limite
Select Case Boucle
Case 0
Somme = (Convert.ToInt32(pValeur(Boucle)) * 5) Mod 10
Total += Somme
Case 1
Somme = (Convert.ToInt32(pValeur(Boucle)) * 6) Mod 10
Total += Somme
Case 2
Somme = (Convert.ToInt32(pValeur(Boucle)) * 7) Mod 10
Total += Somme
Case 3
Somme = (Convert.ToInt32(pValeur(Boucle)) * 8) Mod 10
Total += Somme
Case 4
Somme = (Convert.ToInt32(pValeur(Boucle)) * 5) Mod 10
Total += Somme
Case 5
Somme = (Convert.ToInt32(pValeur(Boucle)) * 6) Mod 10
Total += Somme
Case 6
Somme = (Convert.ToInt32(pValeur(Boucle)) * 7) Mod 10
Total += Somme
Case 7

Case 8
Somme = (Convert.ToInt32(pValeur(Boucle)) * 8) Mod 10
Total += Somme
End Select
Next

If (Total Mod 10).Equals(Convert.ToInt32(pValeur(7))) Then
Reponse = True
End If

End If


Return Reponse

End Function

En fait c'est assez simple à construire, moi j'ai pris le chiffre tel quel,
tu peux utiliser le code ascii de ce chiffre (caractère), tu peux additionner
un nombre à chacun des chiffres, les possibilités sont infini.

Une fois ton algorithme bien établie, tu utilise Excel pour te créé une base de numéro valide qui réponde à ton algorithme, sous Excel tu reproduit ton algorithme avec des formules d'Excel et tu modifie tes codes jusqu'à
obtenir une combinaison valide.

K
0
cs_Alien Messages postés 70 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 23 mars 2024 23
Modifié par cs_Alien le 2/03/2014 à 16:34
Pour commencer merci d'avoir répondu, je me sen moins seul à présent :p

Enfin ce que j'aimerais c'est ne pas donner à chaque fois le même code, j'aimerais qu'il soit propre à une config, du coup je me suis lancer dans la lecture d'info liée au PC du style

Imports System.Management
Module Functions

Public Function GetMACAddress() As String
Dim d As New ManagementObjectSearcher("SELECT Description,MacAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=1")

Frm_licenceKEY.ListBox1.Items.Add("")
Frm_licenceKEY.ListBox1.Items.Add("Win32_NetworkAdapterConfiguration")
Frm_licenceKEY.ListBox1.Items.Add("**********************")
For Each boucle In d.Get()
Frm_licenceKEY.ListBox1.Items.Add("Description: " & boucle("Description").ToString())
Frm_licenceKEY.ListBox1.Items.Add("MacAddress: " & boucle("MacAddress").ToString())
Next

End Function
End Module

Qui me récupère l'adresse MAC de la carte réseau activée
et/ou le numéro de série du disque dur ( je n'ai pas mis le code ) ...

ses numéro je les demanderais lors de la demande d'activation de mon logiciel
de mon coté avec ses numéro + le GUID de l'assembly je pourrais mouliner
une série de chiffre qui serait le code de déblocage

la moulinette serait évidement aussi dans mon logiciel qui fera la même démarche que moi
et si le code d'activation que j'ai compilé avec ma moulinette est égale à celui compliler par le logiciel alors j'autorise l'intégralité des fonctions de mon prog

Est ce que ma démarche est juste ? Quelqu'un à d'autre idée ?

Une idée de comment faire de deux série de chiffre ( adresse mac + GUID de l'assembly )
un code style xxxxx-xxxxx-xxxxx-xxxxx histoire d'avoir un peut de gueule ?

L'adresse mac est la plus fiable pour être sur que le logiciel ne tourne pas ?
0
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
3 mars 2014 à 21:58
Bonjour,

Je comprends que la MAC Adresse et/ou le disque dur est une bonne idée,
mais tu serait encore mieux avec un code relatif au micro-processeur de la machine.

Une carte réseau ça se change, moi par exemple , j'en ai 2, une "onboard" et une
sur carte PCI, des disques durs j'en ai 3. Alors je suis perplexe sur ce choix.

L'Id du processeur serait à mon avis le meilleur choix, toutefois je n'ai jamais tenté de lire cette ID du processeur en VB.NET.

Je sais que certaines compagnie, utilise cette ID pour le combiné avec l'OS de la machine, c'est à dire que l'on ne peut installer un autre OS que celui-ci fournit
par le constructeur, j'ai rencontré ce type de machine 2 fois dans ma carrière.
Toutefois, je n'ai pas essayé d'installer Linux sur ces machines, celle-ci ne m'appartenait pas et dans mon entourage Linux est plutôt rare.

Je n'ai rencontré à ce jour qu'une personne qui fonctionne comme moi, c'est à dire
installer Linux comme OS principal et virtualisé les version de windows (xp, vista, seven).

Je vais aller voir dans mon BIOS si j'ai un numéro de série de mon processeur,
et s'il y en a un, je vais tenter de le lire, ça me semble un bon exercices. :-)

K
0