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

Windows Presentation Foundation Discussion :

Protection d'une application C# WPF


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Protection d'une application C# WPF
    Bonjour à toutes et à tous,

    Je développe actuellement une application commerciale écrite en C#/WPF.

    Afin de déployer cette application sur le poste de mes clients j'ai besoin de votre aide concernant quelques poins.

    Comment puis-je protéger mon logiciel, protection du code source et système de gestion de licence (durée dans le temps, période d'essai, bloquage hardware...).

    J'ai pu essayer .NET Reactor dans sa version d'essai et la j'essaye actuellement Agile.NET Obfuscation et Copy Protection.

    Quel est votre avis concernant ces deux solutions? Avez-vous des solutions fiables autre que celles-ci?

    PS: Pas de soucis pour une solution payante, au contraire je préfère payer et avoir quelque chose de fiable.

    En vous remerciant par avance,


    John

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    j'ai trouvé ce truc :

    https://visualstudiogallery.msdn.mic...8-0f43f8d6a817

    Je ne sais pas ce que ça vaut (ni le prix)... semble interessant celà dit !

    Ou celui là aussi :

    http://www.eziriz.com/dotnet_reactor.htm

    Mais honnètement, je ne sais pas ce que ça vaut réellement.. et si, avec des librairies particulières ça fonctionnera aussi !

  3. #3
    Membre Expert
    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
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    La protection de code source en DotNet est totalement illusoire, je veux dire par là que les outils trouvés ça et là sur la toile n'arrêteront pas quiconque voulant absolument accéder au code source de ton binaire (encore faut-il que le jeu en vaille la chandelle).

    @MonZ : La solution de RutemSoft n'est absolument pas sécurisé puisqu'il ne fait que packer le binaire original et nous pouvons assez aisément le récupérer à l'aide d'un outil comme MegaDumper car le binaire dotnet est exécuté en mémoire et récupérable depuis cette zone !

    Un peu de lecture pour info :

    http://www.developpez.net/forums/d15...s/#post8665936
    http://www.developpez.net/forums/d14...cation-contre/

    Comme tu l'auras compris la seule et l'unique manière de bien sécuriser ton code source (à part ne pas programmer en langage managé), c'est d'héberger des parties de codes sensibles côté serveur et faire des appels depuis le client avec au préalable un système de connexion à l'aide d'une licence qui lie l'utilisateur (son ordinateur) et ton programme comme le propose LiteCode (un vieux projet) :

    Intro

    I have written up a basic client/server example of how to use LiteCode in order to protect your .NET applications. LiteCode allows you to remotely execute code from a server application, and use that data securely. I have used a combination of LiteCode + .NETSeal in my applications, and they have yet to be cracked.

    Project Overview

    Globals

    Public Key - key that users can view publicly (aka, store in project resources.)
    Private Key(s) - keys that must not be stored client side. You should download your private key(s) from your webserver (stored encrypted), after you have authenticated the user. Then decrypt them. You can store them in your litecode server's resources, so long as your web server is not compromised.
    ISharedClass - the shared class interface is just that - an interface that defines the functions that your shared client<->server class will contain. (It must be the same in both projects. Contains no actual code.)
    SharedClass - the actual shared class that contains the sensitive code. (Only in server for obvious reasons.

    Client

    Client - your main application. It will connect to your server with a static username/password combination. I suggest not hardcoding these, rather, retrieve them from your webserver after a pre-authentication of your choosing (eg. Servatrix, NetSeal).
    ClientProps - class where you define your server's IP Address, among other properties.

    Server

    Server - your server application. It will handle and authenticate connections from your client with your static username/password, as well as your private key(s).
    ServerProps - the same as ClientProps, but properties for your server.

    Example Project (C#)

    https://github.com/debug-hf/LiteCode-Example
    https://github.com/AnguisCaptor/LiteCode
    https://github.com/AnguisCaptor/SecureSocketProtocol


    Project Explanation

    https://youtu.be/y3WEiSjjfYI

    --------------------------------------------------------------------------------------------------------------------------------------------------

    Si tout cela te sembles obscure et que tu optes pour une solution payante alors je te recommande de te tourner vers AppFuscator : http://appfuscator.com/

    A+

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 51
    Par défaut
    Je suis d'accord avec wallace1 mais plus nuancé, tu peux protéger ton code contre les script Kiddies on ofrusquant ton code à la mains avant d'utiliser une application tierce. Il suffit de code une application console qui va lire tes fichier et renommé tes variables et mettre des caractères unicode. Tu peux aussi mettre du code Junck qui peut bien faire chier pour comprendre un programme. Ajoute à ça smart assembly et tu aura une une protection contre les touristes. Bien sûr cela ne vaux pas la solution de wallace1 après tout dépend de ton logiciel. Est ce que c'est un logiciel basic ou une applis qui révolutionne le monde.
    A+.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci à tous pour vos réponse.

    Malheureusement impossible de faire appel à une solution client/serveur, mes clients utilisant principalement des réseaux locaux.

    Je vais regarder du côté de Appfuscator. Cependant, j'ai pu tester Agile.NET qui s'avère très efficace, certes pas donné, mais qui en plus est disponible chez un revendeur informatique de ma région.

    En vous remerciant par avance,

    Je reste ouvert à toutes autres propositions.

    PS: J'ai cru lire que des applications commerciales .NET sont assez vulnérables, comment expliquer de ce fait que .NET est très largement utilisé? Utiliser des DLLs C/C++ depuis une application .NET est-ce une bonne idée? Car ces derniers ne sont pas des languages managés mais également obfuscables.

    John R.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    perso, je livre beaucoup d'application à mes clients et comme les applications sont pour un usage interne, je ne trouve pas celà génant de ne pas obfusquer l'exécutable.

    Après, si tu es amené à faire une application qui va être diffusée sur le net, je peux comprendre l'intérêt... après, en dehors de problème lié à la sécurité, il est tout à fait
    possible de faire en sorte que le login / password d'une application soit vérifié par un web service... donc, même si on va désassembler ton appli... ca sera pas très grave.

    Après, ceux qui ont peur qu'on leur vole leurs idées... bah, j'ai pas de solutions pour eux...

Discussions similaires

  1. [WD17] Protection d'une application
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 02/02/2013, 12h35
  2. Protection d'une application avec un serial
    Par Seth77 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 06/10/2011, 12h04
  3. Protection d'une application windows form
    Par inno007 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 01/10/2010, 13h30
  4. Protection d'une application web sous Tomcat
    Par midou84 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 15/01/2008, 08h42
  5. Protection d'une application hors sécurité Access
    Par Domi2 dans le forum Sécurité
    Réponses: 13
    Dernier message: 21/06/2007, 10h16

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