Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sécurité Vb.net

Sujet résolu
    25 août 2011 à 13:44:33

    Bonjour,

    Je voudrais savoir si les programmes codé en Vb.net sont sécurisé ?
    Si il y a moyen de le décompiler et d'obtenir un code clair.

    Du genre décompiler du java, ou du .swf .

    Merci

    Cordialement, Kirua29
    • Partager sur Facebook
    • Partager sur Twitter
      25 août 2011 à 13:53:27

      Oui c'est possible de "décompiler" du VB.NET par défaut mais tu peux utiliser des obfuscateur (DotFuscator par exemple) pour cacher le code.

      Attention tout de même à ne pas faire reposer toute la sécurité de l'application sur la non lisibilité du code. :)
      • Partager sur Facebook
      • Partager sur Twitter
        25 août 2011 à 15:50:32

        Arf, si je publie mon programme a poil comme ça, je me ferais chouré l'algorithme qui est dedans en 5 minutes.

        Je voudrais aussi savoir si il aurait moyen crypter une classe dans le programme tout en restant directement utilisable dans le programme ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 août 2011 à 15:55:57

          L'obfuscation ne t’empêche pas d'éditer tes classes. ^^
          En fait elle se fait sur ton programme compilé (donc .exe ou .dll)

          PS: crypter n'exister pas en français, on dit chiffrer ;)
          • Partager sur Facebook
          • Partager sur Twitter
            25 août 2011 à 16:02:25

            Ce que je veux dire : c'est dans mon projet en Vb.net sur Visual Basic express, chiffrer une classe et ensuite compiler mon projet.
            • Partager sur Facebook
            • Partager sur Twitter
              25 août 2011 à 16:34:28

              Je ne pense pas que tu puisse obfusquer une seule classe (à voir) mais dans tous les cas tu fais ton programme comme d'habitude et ce n'est qu'une fois qu'il est terminé que tu vas utiliser un obfuscateur pour cacher ton code.

              En réalité, l'obfuscation n'est pas du chiffrement, ça modifie ton code source original pour qu'il soit incompréhensible pour quelqu'un qui le décompilerait, rien de plus.
              • Partager sur Facebook
              • Partager sur Twitter
                25 août 2011 à 16:39:03

                Bonjour.
                en .net, ton code change plusieurs fois d'état,
                on pourrait résumer ça à trois états :
                1) au début c'est du code c#, VB.Net (ou autre) dans des fichier ".cs"
                2) après, il est "semi-compilé", transformé en MSIL (Microsoft Intermediate Language) sous forme de .exe ou .dll
                3) enfin juste avant d’être exécuté il est compilé par la CLR (Common Language Runtime) et transformé en quelque chose que ton PC peut comprendre.

                L'offuscation du code n'est effective qu'a partir de la partie "2".
                tes classes .cs sont donc toujours lisibles.
                Mais si tu donnes ton .exe à quelqu'un et qu'il le décompile, alors, cette personne découvrira un code très difficile à comprendre.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 août 2011 à 16:47:02

                  Un jour j'ai décompilé un programme en Java. Dans ce programme il y avait un un algorithme très très bien planquer et qui était crypter dans un fichier (h.dat). Le programme en java faisait le nécessaire pour utilisé le h.dat.

                  Je voudrais faire la même chose en plus d'une obfuscation.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 août 2011 à 16:51:54

                    Les algorithmes les plus "sûrs" sont souvent ceux dont on connait le fonctionnement.
                    Se baser sur la sécurité d'un algorithme maison n'est pas forcément la meilleure chose à faire (mais tout dépend du type d'algo dont on parle).
                    Quel est l'utilité de ton algo et pourquoi vouloir empécher sa récupération ?

                    L'obfuscateur permettra effectivement de rendre le code MSIL (comme expliqué plus haut) plutot illisible par l'utilisateur qui souhaiterait analyser ton code.
                    Pour une personne compétente et si ton algo vaut le coup, il sera toujours possible de le récupérer moyennant un travail assez long selon la complexité de l'algo.

                    Il doit surement exister des outils commerciaux (autre qu'un obfuscateur) applicables au langages .net pour compliquer rudement la vie d'un décortiqueur de programme.
                    Mais tout se paye !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 août 2011 à 16:56:08

                      Citation : HolyView


                      Il doit surement exister des outils commerciaux (autre qu'un obfuscateur) applicables au langages .net pour compliquer rudement la vie d'un décortiqueur de programme.
                      Mais tout se paye !



                      En fait il y a une technique qu'utilisent certains professionnels et qui est gratuite. :p
                      Il est possible de coder la partie sensible de ton application (donc ici ta classe) en C++, donc tu auras une DLL full compilée quasi illisible si on met à part l'assembleur.

                      Une fois que cette DLL est créée, tu utilises les possibilités de .NET en matière d'interop pour utiliser la classe codée en C++.

                      Pour l'histoire du h.dat je vois pas du tout le truc. :-°
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        25 août 2011 à 17:05:06

                        De toute façon, quoi que tu fasses, si le jeu en vaut la chandelle quelqu'un décompilera ton code - même si c'est de l'assembleur - et trouvera l'algorithme.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 août 2011 à 17:07:46

                          désolé mais là je ne vois pas trop l’intérêt

                          Dans tous les cas il faut te dire qu'il est impossible d’empêcher totalement quelqu'un de te voler ton code.
                          par contre tu peux le retarder (décourager l'attaquant, c'est le but de la sécu :s)

                          Après, tu peux aussi signer un projet de manière à empêcher quelqu'un de modifier ton code et/ou utiliser la méthode de Chinouchi
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 août 2011 à 17:08:07

                            Citation : chinouchi

                            En fait il y a une technique qu'utilisent certains professionnels et qui est gratuite. :p
                            Il est possible de coder la partie sensible de ton application (donc ici ta classe) en C++, donc tu auras une DLL full compilée quasi illisible si on met à part l'assembleur.


                            Comme le dit Aethec, ca ne changera strictement rien (et ca pourrait même simplifier la chose ...)
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Sécurité Vb.net

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown