IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Comment créer un système de licence en VBA sur Excel ? [XL-2010]


Sujet :

Conception

  1. #21
    Invité
    Invité(e)
    Par défaut
    Bonjour le forum,
    Comme convenue, je reviens vers vous. J’ai mis du temps à modifier mon code pour tenir compte des remarque au combien pertinentes d’EngueEngue .

    Mais mon employeur ne vous connaît et ne souhaite pas le faire !
    Vous trouverez en pièce jointe la nouvelle mouture ainsi qu’un doc récapitulant les tests à effectuer.

    J’ai effectué les tests sur un Win Xp en lecture écriture. J’ai accès à une machine 64 bits mais je n’ai pas les droits Admin, je n’ai pus tester que la lecture. Je compte sur vous béta testeurs et notamment sur EngueEngue pour m’éclairer sur le sujet.

    Si une personne dispose de 2 profile sur la même machine, 1 Admin pour écrire dans la base de registre et l’autre utilisateur pour lire uniquement la base de registre c’est cool.

    J’attends vos remarque avec impatience et ainsi je pourrai formaliser une doc pour l’insertion de la macro dans le code de ben5622
    Fichiers attachés Fichiers attachés
      2  1

  2. #22
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    J'ai ma machine 7/64 à la maison je te fais le test dans la soirée. Au vu des modifs en accès admin je pense qu'il ne devrait y avoir aucun problème d'écriture dans le registre.

    Par contre il faudra les droits admin pour y écrire, Une solution de portabilité pourrait être d'écrire la clé dans une cellule cachée d'une feuille en xlVeryHidden, non ?
      0  0

  3. #23
    Invité
    Invité(e)
    Par défaut
    oui sans doute mais je suis parti de ce postula pour éviter les allés retours contraignant entre le client et son fournisseur (Infos sur la machine).

    les tests nous confirmeront ou nous infirmerons si mon raisonnement était le bon?

    Par contre il faudra les droits admin
    ça peut être un prérequis au moins pour l'enregistrement de la licence!
    Dernière modification par Invité ; 29/08/2013 à 12h52.
      0  1

  4. #24
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Je te confirme qu'en admin je peux bien écrire sur le registre et qu'en user on lit bien dessus. Par contre comme user impossible de créer la key! Il faut passer en admin avant de créer la key.

    Solution de contournement: l'écrire dans un coin du classeur et aller la chercher là plutôt que dans le registre. L'utilisateur lambda n'y vera rien et le hackeur chevronné aura autant de mal à le trouver qu'à trouver la clé de reg!
      0  0

  5. #25
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour.
    Citation Envoyé par EngueEngue Voir le message
    […] et le hackeur chevronné aura autant de mal à le trouver qu'à trouver la clé de reg!
    Si la clef a été créée via un API …

    Sinon avec la fonction interne au VBA limitant l'enregistrement
    à un emplacement particulier de la BDR, en 30 secondes elle est trouvée ! …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      1  0

  6. #26
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Tu as regardé le code Marc ? Il suffit de se plonger dedans pour voir où est la clef de registre.
      0  0

  7. #27
    Invité
    Invité(e)
    Par défaut
    je suis d'accord avec vos remarque, mais je redis que 100% est illusoire.

    un client préféra payer une licence et la maintenance qui va avec que piraté et une garantie jusqu'au coin de la rue.

    le mode Admin pour l’enregistrement de la licence ne me choque pas. ne le fait on pas pour installer WinZip?
      0  0

  8. #28
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Non là EngueEngue où je suis je ne peux y accéder mais cela je le sais bien …

    {Je t'ai ajouté des points là où on t'en a enlevé abusivement …}

    Pour préciser, sans craquer le mot de passe d'un projet, c'est facile de trouver la clef dans la BDR
    si c'est la fonction interne au VBA qui a été utilisée vu que l'emplacement racine est toujours le même ! …

    La seule protection à peu près efficace rencontrée était une dll externe
    dans laquelle se trouvait la protection et certaines fonctions / traitements cruciaux du projet …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      3  0

  9. #29
    Invité
    Invité(e)
    Par défaut
    je persiste et je signe, en l'état actuelle des chose, ma solution est sans doute une alternative envisageable.

    lorsque notre amis aura amassé suffisamment d'argents pour s'attacher les services d'un développeur C# il pourra envisager une version vraiment sécurisée.
      0  1

  10. #30
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    grave, elle est top! Aucune dévalorisation de ton travail de notre part si ce n'est des propositions !
      0  0

  11. #31
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par EngueEngue Voir le message
    grave, elle est top! Aucune dévalorisation de ton travail de notre part si ce n'est des propositions !
    c'est bien comme ça que je l'avais compris.

    c'est juste que dans Excel la sécurité est Bof à ce niveau.

    si j'ouvre l’application en maintenant la touche [MAJ] enfoncé la macro de vérification de licence de s'exécutera pas, il faudra prévoir dans les différente macro et ouverture de formulaires, d'intégrer le contrôle de licence. du moins sur les macros stratégiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    'Verification Licence
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'Verification Licence
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    'Verification Licence
    End Sub
    Bonjour,
    Je vous joints un fichier LicenceXlsBdr.zip qui contient la procédure d’insertion de la macro de contrôle de licence.
    Bien sur il faudra dans la version fourni aux clients, intégrer cette fonction dans l’événement open du classeur ainsi que dans les macros stratégique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
    VerifLicence
     
    End Sub
    si vos remarques m’amène à modifier le code je donnerai les mise à jours.

    Je vous invite à regarder l’évolution de ce poste : http://www.developpez.net/forums/d13...r/#post7460553
    Car je pense qu’il pourra intéresser notre amis, il traite du CTRL-ALT-PAUSE
    Fichiers attachés Fichiers attachés
    Dernière modification par AlainTech ; 16/09/2013 à 08h39. Motif: Fusion de 2 messages
      2  1

  12. #32
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Super, joli travail !
    Ca va limiter de façon importante les copies.
    Merci encore !
      1  1

  13. #33
    Invité
    Invité(e)
    Par défaut
    bonjour, regarde ça
    Fichiers attachés Fichiers attachés
      0  0

  14. #34
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Je ne sais pas pourquoi ce UP, mais ça m'a permis de prendre connaissance de ce sujet intéressant.

    Pour augmenter la sécurité quelques idées :

    J'imagine que tu as aussi mis un mot de passe sur le code VBE

    Ce qui pêche c'est toujours le test entre le code trouvé et le bon code
    voici pour "compliquer"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub createcode()
    ' à lancer dans le fichier avant envoi, puis supprimer cette Procédure.
     
        ThisWorkbook.Names.Add name:="aplication.name", _
            RefersTo:="1DA242EAF2A6EAF11937EE18311CD2FD", _
            Visible:=False
     
    End Sub
    et modifier ainsi le code (exemple pour creeLicence)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function creerLicence(CodeProduit)
    Dim md5Test As New MD5: creerLicence = "": If Trim("" & CodeProduit) = "" Then Exit Function: creerLicence = md5Test.DigestStrToHexStr(Names("aplication.name") & Trim("" & CodeProduit))
    End Function
    Vous pouvez voir que j'ai mis le maximum sur une ligne (avec pour rendre moins lisible le code idem pour le nom choisi "aplication.name"

    ce qui pourrait être bien c'est de mettre tout cela dans un fichier .XLA qui sera joint au fichier PROGRAMME
      0  1

  15. #35
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Mouais, pour des néophytes, sinon cela ne tient pas cinq minutes …

    Au fait Oliv, c'est bien aussi d'indiquer la référence à activer avec un code en Early Binding
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      1  0

  16. #36
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Mouais, pour des néophytes, sinon cela ne tient pas cinq minutes …
    c'est juste pour compliquer effectivement pas empecher.
    Au fait Oliv, c'est bien aussi d'indiquer la référence à activer avec un code en Early Binding
    où cela ?
      1  0

  17. #37
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Ben ta fonction creerLicence comme cela devrait générer une erreur car MD5 est externe au VBA, non ?
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      1  0

  18. #38
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Oui, mais je n'ai fait que reprendre le code de robert en remplaçant
    1DA242EAF2A6EAF11937EE18311CD2FD par Names("aplication.name")
      0  1

  19. #39
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Ah OK, donc il y a soit une référence activée dans le fichier de Robert soit c'est une classe dans son code …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      0  0

  20. #40
    Invité
    Invité(e)
    Par défaut bonjour,
    quand les chose ce complique, une classe rend le code plus lisible et facilement réutilisable.
      1  1

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. comment Créer un système de pagination automatique
    Par soufiane656 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/06/2015, 13h07
  2. créer un système de licence en VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/09/2014, 13h29
  3. Comment créer un systéme d'exploitation ?
    Par vermersch.vermersch2 dans le forum Autres systèmes
    Réponses: 2
    Dernier message: 19/09/2013, 15h21
  4. [XL-2003] Comment créer un tableau de graphique en VBA
    Par guica dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/08/2010, 10h49
  5. Comment créer un Système multi-station
    Par Vendelin dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 21/01/2009, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo