Créer un shareware en VB.NET

cs_Alien Messages postés 86 Statut Membre -  
Kalissi Messages postés 221 Statut Membre -
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 !



--
Jérôme.

2 réponses

  1. Kalissi Messages postés 221 Statut Membre 20
     
    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
    1. cs_Alien Messages postés 86 Statut Membre 23
       
      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
  2. Kalissi Messages postés 221 Statut Membre 20
     
    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