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

C# Discussion :

Publier son application en trial période


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut Publier son application en trial période
    Bonjour à tous,
    j'ai fini une application en C# et je souhaite le publier en version d'essai pour des éventuels client. Alors je souhaiterais avoir un coup de pouce sur comment procéder. Merci d'avance.

  2. #2
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Une version pour essayer juste quelques fonctionnalités ou une version limitée dans le temps (30 jours par ex)??

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Oui une version limitée dans le temps (30 jours par exemple)!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut
    Je crois bien que c'est dans le registre sa donc tu dois écrire dans le registre

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    c'est à toi de coder ca, et la méthode dépend du niveau de sécurité que tu veux mettre
    car si tu stockes quelque part la date d'installation (base de registre ou ailleurs) et que tu testes que la date d'exécution est inférieure à 30 jours c'est simple à contourner
    ca dépend aussi de si tu peux exiger un accès à internet ou non ...

    m'enfin un programme .net est facilement piratable dans tous les cas
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Comme à dis Pol63 c'est à toi de coder le truc et aussi c'est vulnérable si tu écrit dans le Registre ou un fichier accessible à l’extérieur de l'application, car une personne tiers peut le modifier.

    Ce que je te propose est de créer un compteur à l’intérieur de ton application et qui s'incrémente tous les jours (+1) à partir de la date d'installation de ton application.

    Ou utiliser un logiciel de création de setup comme InnoSetup ou autres similaires.

    Mais rassure toi que des logiciels de renomées mondiale ont été cracké.Donc....

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Alors comment tester l'application au premier lancement. Voila un peu ce que je veux faire:
    -> récupérer la date au 1er lancement (Comment le faire?);
    -> Crypter cette date et la stoker dans le registre (Comment le faire?);
    -> A chaque nouveau lancement, récupérer la date cryptée dans le registre, la décrypté et comparé la différence avec la nouvelle date de lancement à 30 jours;
    -> Permettre ou non le lancement ou afficher un message selon le résultat (=< 30);
    -> Enlever cette restriction lorsque la licence est acquise (Comment le faire?) comme le cas de kaspersky anti-virus).

    Voilà en gros ce que je veux faire.
    Merci d'avance.

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    Salut,

    -> récupération date : pour savoir si c'est le premier lancement, cherche si cette date est déja stockée (dans le registre ou autre)
    -> Cryptage : http://support.microsoft.com/kb/307010/fr
    ->
    ->
    -> un bête test avant ton test de date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!Enregistre)
    {
         if (DateTime.Now.AddDays(-30) > MaDateStockeeDecryptee)
              Application.Exit();
    }
    PS : ouaiiii ct mon 200ème message

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 54
    Par défaut Suppression de la clé
    Bonjour,

    Citation Envoyé par Le gris
    Crypter cette date et la stoker dans le registre (Comment le faire?)
    Je ne sais pas comment on fait en C#, mais en VB.net je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Computer.Registry.SetValue("noeud", "ma_clé", "ma_valeur")

    "noeud" = par exemple, "HKEY_CURRENT_USER\Software\nom_de_mon_logiciel"
    "ma_clé" = "date"
    "ma_valeur" = la date cryptée de la première installation

    Pour récupérer "ma_valeur", j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Computer.Registry.GetValue("noeud", "ma_clé", defaultvalue)))
    où defaultvalue = Nothing dans mon cas


    C'est donc simple comme bonjour.
    Le hic ... est que le cryptage n'empêche pas la suppression ...

    L'utilisateur peut supprimer cette clé ...

    Comment ton programme va-t-il contrer cette "attaque" ?

    Ton programme ne va-t-il pas croire, alors, qu'il s'agit de la première installation ? ...

    A mon sens, la seule vraie protection consiste à empêcher l'utilisateur de modifier et de supprimer, c'est-à-dire hors de son ordinateur ... ou hors de l'espace du serveur où il a les droits de modification et de suppression

    Bref, une application sécurisée ne devrait se lancer que connectée à un serveur où l'utilisateur n'a que des droits en lecture.

    Ceci dit, si l'utilisateur ne peut ni modifier, ni supprimer, il ne sert plus à rien de crypter ...

    Quel est l'avis des autres participants à ce forum ?

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    le problème c'est que stocker cette information dans l'assembly en cours c'est un peu comment dire... difficile, car il faudrait pouvoir modifier l'assembly en cours de fonctionnement, ce qui est d'office rejeté, et je te dit pas la régénération dynamique que ca imposerait

    en fait il faut envisager soit de passer par un lib native win32, soit d'obfusquer le code, et de passer par une dll externe, fournie d'office avec le système, mais qui ne contient pas la date, cette lib tu peux la reconstruire à la volée avec les infos dont tu as besoin pour déterminer si la date est échue, pour peu que tu la charge dans un domaine d'application autre que ton application en cours, mais dans un sous domaine...
    mais bon là il faut déjà être à l'aise avec la génération de code dynamique

    D'autant que si tu veux être sadique, tu utilise le code généré, pour forcer la dépendance, donc d'office, si le gars il te la supprime, il a tout faux.
    Et si t'est pas la moitié d'un sauvage tu peux envisager d'inclure en ressource de ton exe principal un certificat pour définir un strong-name sur ta lib dynamique au moment de la compilation mais là c'est carrément du sadisme et question développement... ba disons le... c'est un peu gore quoi

    Afin d'immuniser ton exécutable principal contre des modifs (patch) pour justement zappé la partie qui contrôle le temps, par une assembly annexe, il est indispensable de compiler ton application avec un Strong Name, donc de signer numériquement l'assembly.
    cela rend ton code exécutable sure, au sens où toute modification sera détectée par la CLR, et l'application ne se lancera pas.

    C'est la solution utilisée dans Microsoft Expression Blend, et à part des sérial, il n'y a pas à ma connaissance de vrai crack qui casse cette sécurité.

    Bon là je me suis volontairement "enflammé"... disons le franchement cette solution est extrêmement difficile à mettre en oeuvre, et sort ouvertement des limites de l'aide que tu peux obtenir ici...
    il te faut pour cela, lire la doc msdn sur la réflexion et génération de code dynamique et tout particulièrement sur System.Reflection.Emit, et également lire la doc sur le MSIL... là je te conseil, un wagon d'aspro et un semi de prosac si t'est encore "chaud".
    Je ne saurais trop te déconseiller cette solution, mais bon, il semblait intéressant d'en parler dans la mesure où c'est du domaine du possible.

    Dans tous les cas, c'est uniquement fait pour décourager le premier venu de passer outre, mais si la personne en face s'en donne réellement la peine, il trouvera la faille.

  11. #11
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Il existe des outils logiciels pour faire ce genre de chose. Le faire à la main c'est un peu du bricolage

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    disons que les solutions existent, mais la question est... veut-il mettre le prix

  13. #13
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Et quand on ne peut pas mettre le prix alors on bricole

    Je miserais quand même plus sur la signature d'un contrat de prêt de 30 jours et une mise en relation de confiance avec le client que sur ce genre de solution technique.

    Disons que ce genre de solution est utile quand un soft commence à prendre pleins de part de marché mais là manifestement il vient juste de finir le soft..

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    disons le tout net, j'en ai la tête qui tourne ! Cela dit, puis-je avoir les noms des soft payant qui me permettrons de le faire?
    Que pensez vous des keyGenerator?
    Merci dans tous les cas.

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour,
    Citation Envoyé par Pol63 Voir le message
    ca dépend aussi de si tu peux exiger un accès à internet ou non ...
    C'était une très bonne question à mon avis. Ca permet de simplifier grandement le traitement.
    Il y a juste a écrire la date d'installation sur un endroit d'internet et le tour et joué. (A quelques petits détails près).

    Après en local c'est un peu plus dure de faire une vrai sécurité qui tienne la route.

    Pour le local je penserai plutôt à un système de clé cd. Si c'est possible.

  16. #16
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Citation Envoyé par wakan Voir le message
    Bonjour,
    Pour le local je penserai plutôt à un système de clé cd. Si c'est possible.
    Je ne comprend pas très bien.

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    ba des numéros de séries à coucher dehors comme les clés CD pour les logiciels que tu achète, ou les jeux...

    tu sais ces numéros en xxxx-xxxx-xxxx ....

    alors pour les amateurs en règle général ces numéros sont générés via des algorithmes à base de cryptographie avancée...
    et contrairement aux croyances, si l'algorithme est bien implémenté, le fait de voir le code n'y fera rien...
    vive les ECC qui ont quand même donné du fil à retordre à tous les petits malins qui voulaient faire un keygen pour winrar...

  18. #18
    Membre éclairé
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Ok je vois! Je fais une recherche dans ce sens et je vous tiens au courant.
    Merci pour tout!

Discussions similaires

  1. [Visual C#] Publier son application
    Par As2piK dans le forum C#
    Réponses: 1
    Dernier message: 02/04/2010, 01h59
  2. publier simplement son application visual studio 2005
    Par piotrr dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 01/07/2007, 12h16
  3. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 14h28
  4. Protection de son application
    Par FFF dans le forum Sécurité
    Réponses: 14
    Dernier message: 22/11/2005, 14h55
  5. Comment protéger efficacement son application ?
    Par RamDevTeam dans le forum EDI
    Réponses: 3
    Dernier message: 15/11/2005, 09h41

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