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

Dotnet Discussion :

proteger le code source - dotfuscator?


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut proteger le code source - dotfuscator?
    Bonjour

    J'aimerais un moyen efficace de protéger mon code source de la décompilation.

    Je pense évidemment à dotfuscator, mais est-ce la seule/meilleure solution pour les programmes .NET?

    La protection des méthodes de calculs contenues dans mes programmes est un point primordial, aussi serais-je prêt à programmer dans un autre langage si ça s'avère être une faiblesse de .NET...

    Ma seconde question est donc de savoir si il est plus facile de faire du reverse-engineering sur un programme .NET compilé avec dotfuscator (ou autre protection..) que sur un programme compilé à partir de c++ (ou autre langage..).

    Merci d'avance pour vos avis éclairés

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Pour ce qui est des obfuscateurs, ils ont tous a peu près les mêmes fonctionnalités.

    Pour ce qui est du reverse il y a un outil qui permet d'enlever les différentes protections: https://github.com/0xd4d/de4dot.
    Tu peux ensuite voir le code source avec reflector, justdecompile, dotpeek, ...

    Au final le code source sera un peu moins lisible que l'original mais avec un peu de temps on y arrive toujours.

    En c++ il y a d'autres outils comme IDA qui permettent de faire du reverse.

  3. #3
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Il y aura toujours moyen. Ce qui compte, c'est que l'effort qu'un hacker doit fournir pour décompiler/comprendre le code soit trop important par rapport au gain qu'il peut y retirer.

  4. #4
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    ok.. et au final, est-ce que ce sera plus facile de hacker un programme .NET qu'un programme d'un autre langage (C++ par exemple)?

  5. #5
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Le code obtenu après obfuscation en dotnet peut être suffisant protégé. Il faut que tu essayes pour voir si ce niveau de protection te suffit.

    Pour le c++ en compilant avec les bonnes options de compilation et en utilisant un obfuscateur, je pense que le code est plus dur à comprendre.

    Encore une fois cela dépend de la valeur de tes algo ainsi que de l'intéret que quelqu'un peut avoir à te les voler.

    PS : il existe un obfuscateur gratuit pour dotnet : http://confuser.codeplex.com/

  6. #6
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Citation Envoyé par meziantou Voir le message
    Pour le c++ en compilant avec les bonnes options de compilation et en utilisant un obfuscateur, je pense que le code est plus dur à comprendre.
    Pourquoi? Y a t-il quelque chose qui fait que intrinsèquement, du code .NET sera toujours plus facile à décompiler que du code c++? A cause du MSIL?

    J'ai trouvé les conseils suivants sur le web:


    • Obfuscate your code. Dotfuscator has a free edition and comes with Visual Studio.
    • Use public/private key or asymmetric encryption to generate your product licenses. This ensures that only you can generate your license codes. Even if your app is cracked you can be sure that they won't be releasing a key generator for your application because it is impossible to reverse the key generating algorithm.
    • Use a 3rd party packer to pack your .NET executable into an encrypted w32 wrapper application. Themida is one of the better ones. This stops people from reflecting your application in .NET Reflector and makes it a pain to unpack for reversing.
    • Write your own custom packer. If the 3rd party packers are too expensive, consider writing your own. Sometimes custom packers can be very effective because there aren't well published methods on how to unpack them. This tutorial gives a ton of good information on writing your own win32 packer.

    Est-ce qu'en mettant en place ces protections (et éventuellement d'autres), on peut atteindre en .NET une protection aussi 'efficace' qu'en C++ ou bien sera t-elle toujours inférieure?

Discussions similaires

  1. Code source page http tro proteger
    Par TheBlackReverand dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 23/05/2008, 11h30
  2. proteger .class pour ne pas retrouver code source
    Par fantomas261 dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2007, 11h36
  3. [Sécurité] Comment protéger mon code source en local
    Par Chikh001 dans le forum Langage
    Réponses: 3
    Dernier message: 09/06/2006, 12h16
  4. Je cherche le code-source d'un interface de Windows
    Par Robert A. dans le forum Windows
    Réponses: 5
    Dernier message: 02/06/2003, 10h45
  5. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 16h13

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