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

VB.NET Discussion :

Distribuer une appli VB.NET


Sujet :

VB.NET

  1. #1
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut Distribuer une appli VB.NET
    Bonjour,

    Je vais bientôt terminer une grosse appli VB.NET (VB.NET 2010)

    Je souhaite commercialiser cette appli ; c'est la première fois que je fais cela, mes autres programmes étaient freeware.

    Je me suis renseigné sur le sujet. Je sais déjà que je devrais réaliser une obfuscation de mon code. J'ai demandé à http://www.preemptive.com/ le coût de la version pro de leur programme Dotfuscator.

    Il faut aussi que je mette en place une protection par numéro de série et clef d'activation ; il paraît que la version pro de Dotfuscator le fait, sinon il y a VBlocker que pensez vous de ces deux solutions ?

    La plupart des sujets que j'ai consulté recommande de mettre en place une protection "dynamique" : l'appli installée communique régulièrement avec un serveur pour vérifier la licence... mais ça a l'air complexe, il faut trouver un serveur, y installer le logiciel qui va bien, et gérer ça tous les jours...

    Enfin, et c'est là une question essentielle : j'utilise la version gratuite de VB.NET. Pour distribuer une appli commerciale, dois-je prendre la version pro ?

    Sur ce forum il y a certainement des programmeurs qui ont déjà distribué une application commerciale qu'ils ont créé avec VB.NET... leur retour d'expérience me sera utile

    Au sujet de mon appli : c'est un logiciel de type CAO/FAO, pour du fraisage numérique.

    Mon appli fait des choses limitées (usinage 2.5D) mais elle le fait de façon très performante et surtout très ergonomique et facile pour l'utilisateur. C'est le point fort de l'appli : rendre la commande numérique accessible au grand public, mais aussi aux artisans et aux artistes "allergiques" à la technologie.

    Beaucoup de gens "manuels" ou "artistes" sont intéressés par l'usinage numérique mais y renoncent car c'est trop cher et surtout trop compliqué. Ils se tournent vers la sous-traitance, ou bien vers l'impression 3D mais les imprimantes 3D abordables ne permettent de faire que des pièces en plastique de qualité plus ou mois correcte alors que l'usinage permet de faire de "vraies" pièces en bois, en métal, en plexiglass...

    On commence à trouver des petites fraiseuses ou graveuses CNC pas chère ou à monter en KIT. Mais l'aspect logiciel reste compliqué et/ou cher. Quelques logiciels gratuits existent mais pour arriver à s'en servir il faut y consacrer des jours voir des semaines, et il vaux mieux être programmeur et avoir des compétences en mécanique et en usinage.

    Du coup mon appli aura un prix de vente modeste (moins de 100 euros) alors que les logiciels de ce type actuellement sur le marché, destinés avant tout aux professionnels, ont plus de fonctionnalités mais sont beaucoup plus compliqués à utiliser, et se vendent de plusieurs centaines à plusieurs milliers d'euros.

    Je pense que le prix modeste de mon appli ne justifie pas une protection "haut de gamme"

    A noter également, mon appli est destinée à s’exécuter sur un ordinateur raccordé à une fraiseuse dans un atelier. Dans ce genre de configuration l'ordinateur n'est pas relié à Internet ; en effet c'est déconseillé car l'ordi ne doit pas planter ou ralentir (sinon l'usinage plante et il peut y avoir de la casse...). Du coup les ordinateurs dédiés à l'usinage sont en général installés avec le minimum de logiciels, rarement ou jamais mis à jours, et non connectés au réseau.

    Autre question à la con : si je fais un SETUP pour distribuer mon programme, celui-ci va-t-il demander et faire l'installation des fichiers Framework DOT.NET éventuellement nécessaire si le PC ne les possède pas ?

    Merci
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu peux vendre avec une version gratuite express
    .net n'est pas parfaitement sécurisable, du moins pas sans outils tiers
    un minimum de sécurité est quand même conseillé, l'obfuscation rend le code décompilé difficile à lire, par contre ca empêche aussi l'utilisation de la reflection dans le code
    ce genre de sécurité permet juste que personne ne modifie facilement la sécurité qui est dans le programme, mais il faut une sécurité autre pour empecher l'installation sur plusieurs machines

    un moyen couramment utilisé c'est de récupérer le numéro de série du processeur (via wmi), et de faire un algo qui à partir de ce code créé une clé d'activation (genre de hashage)
    comme ça un code d'activation ne marche que pour un (ou presque) pc
    par contre pour obtenir ce code d'activation sans internet il faudra demander à l'utilisateur d'aller sur un site pour saisir le numéro du processeur affiché par ton appli
    enfin c'est une idée
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par electroremy Voir le message
    Je me suis renseigné sur le sujet. Je sais déjà que je devrais réaliser une obfuscation de mon code. J'ai demandé à http://www.preemptive.com/ le coût de la version pro de leur programme Dotfuscator.
    L'obfuscation est relativement inutile. Ton code va devenir illisible pour un humain. C'est tout. Ca va rebuter le développeur du dimanche pour récupérer le code source, mais quelqu'un qui voudra absolument le récupérer va y arriver car il existe des programmes gratuits qui permettent de recomposer le code obfusqué... Donc je te conseille de ne pas investir inutilement là-dedans.

    La meilleure protection que tu puisses mettre en oeuvre est d'isoler le code sensible dans un Web Service. Mais comme tu indiques que les postes sur lequel ton soft sera installé n'auront pas accès à internet ca rend ce genre de scénario compliqué...


    Concernant la clé, tu peux aussi créer un générateur : à chaque achat tu génères une clé que ton client pourra utiliser. Par contre avec ca, il n'est pas possible de contrôler que l'installation ne se fasse que sur un seul PC.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Bonjour,

    Merci pour vos réponses

    Du coup je peux parfaitement commercialiser une appli faite avec VB Express ?

    Au sujet de l'obfuscation, et de la protection, je sais très bien qu'aucune protection parfaite existe... la question à se poser c'est quel niveau de protection est pertinent

    D'abord concernant la protection de mon code ; le code obfusqué sera sans commentaires et en plus "illisible"... je pense que c'est suffisant pour protéger mes algorithmes , car ils sont très complexes et même avec le code et les commentaires, il est difficile de comprendre comment ça marche... Même si on me volait mon classeur papier "dossier d'analyse" qui contient des centaines de pages de dessins et d'équations mathématiques, le voleur devrait être calé dans le domaine pour en faire quelque chose.

    Mon application est un logiciel "de niche", et les sous-domaines mathématiques concernés sont eux aussi des domaines "de niche", j'ai trouvé peu de publications sur le sujet et quasiment aucune en français.

    Ensuite, mon programme va intéresser relativement peu de gens. Les gens qui ont une fraiseuse numérique et qui cherchent un logiciel adapté à leur besoin sont beaucoup moins nombreux que les gens ayant un appareil photo reflex et qui cherchent un logiciel de montage vidéo

    On va dire qu'en France, hors grosse entreprise, une personne sur 1000 a une machine. La quasi totalité des possesseurs de machine ont déjà un ou plusieurs logiciels. Parmis ces personnes on peut estimer qu'il y a 30% d'insatisfaits, dont 1/3 seraient prêts à acheter mon programme. Donc une communauté de 6000 utilisateurs en France si mon programme rencontre un grand succès. Rien à voir avec une killer application comme photoshop !

    Je peux évidemment traduire le logiciel en anglais ce qui augmentera la communauté d'utilisateurs... mais le SAV devra suivre ! "My tailor is rich"

    Autre aspect des choses : une machine à commande numérique coute cher (plusieurs milliers d'euros), et les outils, la matière à usiner et les accessoires ne sont pas donnés eux non plus... du coût le prix de la licence de mon programme ne pèsera pas lourd dans le budget d'un fraiseur.

    On peut comparer avec les logiciels de retouche photo : pour les gens qui ont un appareil photo bas de gamme le piratage est "rentable", mais pour un photographe équipé pro avec 10.000€ de matos se payer une licence de DXO ou LightRoom ça représente pas grand chose...

    Après je suis peut être trop optimiste et naïf

    A noter enfin : je ne publierais pas de version d'essai permettant d'usiner.

    La version démo librement téléchargeable sera uniquement en mode édition et simulation réaliste, dépourvue des fonctions de la dernière étape qui génére les usinages vers la machine.

    Du coup l’exécutable de la version complète sera envoyé aux clients ayant acheté la licence. Cela limitera la diffusion du .EXE dans la nature. Je peux même fournir un .EXE différent et personnalisé à chaque client histoire de retrouver d'où vient "la fuite" si le programme se retrouve sur du P2P.

    Enfin, je suis en relation avec des entreprises qui vendent des machines et qui font de la formation. Je leur ai déjà montré un démo. J’envisage sérieusement de passer un accord avec ces entreprises pour que mon programme soit vendu "en bundle" avec une machine neuve et une formation en option, un peu comme Windows qui est vendu principalement avec un PC neuf. Les gens ont du mal à voir la valeur d'un logiciel, par contre si ils achètent l'ensemble machine + logiciel ils ont plus le sentiment d'acheter un "vrai" service

    A+
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par electroremy Voir le message
    Bonjour,
    Enfin, je suis en relation avec des entreprises qui vendent des machines et qui font de la formation. Je leur ai déjà montré un démo. J’envisage sérieusement de passer un accord avec ces entreprises pour que mon programme soit vendu "en bundle" avec une machine neuve et une formation en option, un peu comme Windows qui est vendu principalement avec un PC neuf. Les gens ont du mal à voir la valeur d'un logiciel, par contre si ils achètent l'ensemble machine + logiciel ils ont plus le sentiment d'acheter un "vrai" service

    A+
    Ceci dit, cela vaudrait probablement la peine de consulter un juriste (Chez-nous, on dirait un avocat ou un notaire, mais nos lois leur permettent de le faire, ailleurs, je ne la sais pas) spécialiste du droit d'auteur en particulier, et de la propriété intellectuelle en général, pour te protéger adéquatement.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Il existe des tierces parties qui offrent des produits permettant de gérer l'aspect licence d'un logiciel.

    Dans ton cas, je suppose que la solution la plus logique est de trouver le prestataire le plus approprié selon la grille besoins/sérieux/tarification et ensuite de te concentrer sur ce que tu sais faire le mieux.

    Après une chose est sur, les systèmes les plus efficaces sont ceux dont une partie du processus est faite "Offsite" vu que les applications .Net sont facilement étudiable (et de facto un système étudiable et un système contournable). Donc si tu veux faire un truc un minimum correct, il faudra avoir une infrastructure propre à la génération et la distribution de tes licences (et probablement faire de l'activation par téléphone (ou pigeon voyageur) vu que tu cibles des PC offline).

    A moins d'avoir un intérêt (académique) à comprendre/implémenter un système complet de licence, il n'y a pas de logique économique à vouloir le faire soit-même. Ca te coutera probablement plus chère pour un résultat pas forcément plus efficace.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    vu le marché que tu vises, le plus simple et sécurisant serait de vendre une clé usb avec
    il y a des softs vendus avec une clé physique et complexe, mais un simple clé usb avec un fichier dessus donc le contenu est en rapport avec le numéro de série de la clé usb permettrait d’empêcher la copie de fonctionner (le soft vérifie au démarrage que la clé est là et compare le contenu avec le numéro de série)
    et une clé usb ca coute 5€
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    vu le marché que tu vises, le plus simple et sécurisant serait de vendre une clé usb avec
    il y a des softs vendus avec une clé physique et complexe, mais un simple clé usb avec un fichier dessus donc le contenu est en rapport avec le numéro de série de la clé usb permettrait d’empêcher la copie de fonctionner (le soft vérifie au démarrage que la clé est là et compare le contenu avec le numéro de série)
    et une clé usb ca coute 5€
    Ta remarque est excellente ! Ca me rappelle l'époque des dongles sur port parrallèle C'était une vraie partie de plaisir quand il fallait faire fonctionner une imprimante ou un scanner derrière Mais en USB plus de soucis !

    C'est assez efficace à condition que mon .exe ne puisse être craqué pour se passer du dongle :-P Je viens d'avoir une réponse de Dotfuscator : la licence coûte entre 1500€ HT minimum ! VB.NET serait-il inapproprié pour créer une appli commerciale ?

    Combien coûte la version PRO de VB (non express) et possède-t-elle des fonctions supplémentaires permettant de distribuer facilement une appli commerciale ?

    Pour résumer j'ai deux problèmes :
    - rendre le logiciel difficilement copiable d'un PC à un autre (éviter qu'une seule licence soit utilisée par un grand nombre d'utilisateurs)
    - rendre mon .EXE difficilement modificable (éviter qu'un hacker fasse une version cracké de mon logiciel)

    A bientôt et encore merci pour vos conseils !
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    .net est décompilable facilement, que tu utilises la version express ou une payante n'y change rien

    en googlant protect .net code from decompilation
    on trouve plein de choses à moins de 200€
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Merci pour vos réponses

    Je suis tombé la dessus, https://en.wikipedia.org/wiki/List_o...ators_for_.NET

    Que pensez vous de Confuser Ex ? (http://yck1509.github.io/ConfuserEx/) il est gratuit et complet ; certes il ne virtualize pas le code mais tant mieux, car la virtualisation ralentit le programme

    Cela me fait penser : les obfuscations ont elles un impact sur les performances ? Mon programme fait beaucoup de calculs, j'ai optimisé les algorithmes et leur codage mais certaines fonctions prennent plusieurs dizaines de secondes, ce qui est normal pour ce type d'application

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  11. #11
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour electroremy,

    Ce sujet a déjà fait l'objet d'un débat : http://www.developpez.net/forums/d14...cation-contre/

    Niveau performance tu perdras c'est certains ! Et si l'obfuscateur est de bonne qualité il en sortira malheureusement un binaire considéré comme étant un virus (faux-positif). Car ces obfuscateurs sont utilisés par des personnes qui veulent encapsuler du code malveillant dans leurs applications.

    A+

Discussions similaires

  1. Quel Visual Studio pour distribuer une appli VISTA?
    Par Jean_Benoit dans le forum Visual C++
    Réponses: 5
    Dernier message: 18/02/2007, 16h55
  2. [vb.net/unix] Portabilité d'une appli VB.NET sous UNIX
    Par patanoc dans le forum Visual Studio
    Réponses: 8
    Dernier message: 25/11/2006, 10h34
  3. [C#] HtmlDecode dans une appli WinForm .NET 2.0 VS2005
    Par xtream dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/06/2006, 15h25
  4. [D2006] - Utiliser un composant C# dans une appli VCL.NET
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 13/02/2006, 16h07
  5. [VB.NET] Problème d'installation d'une appli VB.NET
    Par ppzmr dans le forum Windows Forms
    Réponses: 6
    Dernier message: 26/11/2004, 10h09

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