.Net décompilateur, éditeur d'assembly et obfuscateur

Je ne sais pas vous mais je décompile rarement des DLL pour le plaisir. IlSpy est un très bon décompilateur qui me suffit pour comprendre la logique d’un code.

Mais parfois faut aller plus loin. Cela vous est probablement arrivé de ne pas retrouver les sources d’un vieux développement à maintenir. Voir de travailler avec une dll ou un exécutable dont les variables sont écrites en dur dans le code. Avec ILSpy, vous pouvez exporter le code pour ensuite l’éditer dans Visual Studio.


Mon assembly de démonstration dans ILSpy

Vous pouvez aussi avoir envie de modifier directement le code ou ne pas avoir de Visual Studio sous la main. Pour cela j’ai trouvé un éditeur d’assembly : Reflexil. Mais il ne fonctionne qu’avec JustDecompile ou Reflector.

Je vous propose un exemple simple dont voici le code :

using System;
namespace NoParam
{
   public class SiteColl
   {
      private string PrivateUrl { get; set; }
      public string PublicUrl { get; set; }
      public SiteColl()
      {
         this.PrivateUrl = "http://private.sps2013";
         this.PublicUrl = "http://public.sps2013";
      }
      public override string ToString()
      {
         return string.Format("SiteColl.PrivateUrl : {0} | SiteColl.PublicUrl : {1} ",
                              this.PrivateUrl, this.PublicUrl);
      }
   }
}
<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>


Modification d’une valeur avec Reflexil 1.8 dans JustDecompile

<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>

A ce point, vous allez me dire qu’en obfusquant le code, tout cela ne sert à rien. D’autant plus qu’il existe pléthore d’obfuscateurs pour .Net comme en témoigne Wikipedia. Et comme vous l’imaginez, il existe des desobfuscateurs. C’est là qu’entre en jeu De4Dot et que je me demande s’il y a vraiment un moyen de protéger son code et s’il existe une fin à ce cycle.

Références :

ILSpy

JustDecompile de Telerik

Reflector de Red Gate

Reflexil : http://reflexil.net/ et http://sourceforge.net/projects/reflexil/

[Je ne sais pas vous mais je décompile rarement des DLL pour le plaisir. IlSpy est un très bon décompilateur qui me suffit pour comprendre la logique d’un code.

Mais parfois faut aller plus loin. Cela vous est probablement arrivé de ne pas retrouver les sources d’un vieux développement à maintenir. Voir de travailler avec une dll ou un exécutable dont les variables sont écrites en dur dans le code. Avec ILSpy, vous pouvez exporter le code pour ensuite l’éditer dans Visual Studio.


Mon assembly de démonstration dans ILSpy

Vous pouvez aussi avoir envie de modifier directement le code ou ne pas avoir de Visual Studio sous la main. Pour cela j’ai trouvé un éditeur d’assembly : Reflexil. Mais il ne fonctionne qu’avec JustDecompile ou Reflector.

Je vous propose un exemple simple dont voici le code :

using System;
namespace NoParam
{
   public class SiteColl
   {
      private string PrivateUrl { get; set; }
      public string PublicUrl { get; set; }
      public SiteColl()
      {
         this.PrivateUrl = "http://private.sps2013";
         this.PublicUrl = "http://public.sps2013";
      }
      public override string ToString()
      {
         return string.Format("SiteColl.PrivateUrl : {0} | SiteColl.PublicUrl : {1} ",
                              this.PrivateUrl, this.PublicUrl);
      }
   }
}
<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>


Modification d’une valeur avec Reflexil 1.8 dans JustDecompile

<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>

A ce point, vous allez me dire qu’en obfusquant le code, tout cela ne sert à rien. D’autant plus qu’il existe pléthore d’obfuscateurs pour .Net comme en témoigne Wikipedia. Et comme vous l’imaginez, il existe des desobfuscateurs. C’est là qu’entre en jeu De4Dot et que je me demande s’il y a vraiment un moyen de protéger son code et s’il existe une fin à ce cycle.

Références :

ILSpy

JustDecompile de Telerik

Reflector de Red Gate

Reflexil : http://reflexil.net/ et http://sourceforge.net/projects/reflexil/

](https://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET)

[Je ne sais pas vous mais je décompile rarement des DLL pour le plaisir. IlSpy est un très bon décompilateur qui me suffit pour comprendre la logique d’un code.

Mais parfois faut aller plus loin. Cela vous est probablement arrivé de ne pas retrouver les sources d’un vieux développement à maintenir. Voir de travailler avec une dll ou un exécutable dont les variables sont écrites en dur dans le code. Avec ILSpy, vous pouvez exporter le code pour ensuite l’éditer dans Visual Studio.


Mon assembly de démonstration dans ILSpy

Vous pouvez aussi avoir envie de modifier directement le code ou ne pas avoir de Visual Studio sous la main. Pour cela j’ai trouvé un éditeur d’assembly : Reflexil. Mais il ne fonctionne qu’avec JustDecompile ou Reflector.

Je vous propose un exemple simple dont voici le code :

using System;
namespace NoParam
{
   public class SiteColl
   {
      private string PrivateUrl { get; set; }
      public string PublicUrl { get; set; }
      public SiteColl()
      {
         this.PrivateUrl = "http://private.sps2013";
         this.PublicUrl = "http://public.sps2013";
      }
      public override string ToString()
      {
         return string.Format("SiteColl.PrivateUrl : {0} | SiteColl.PublicUrl : {1} ",
                              this.PrivateUrl, this.PublicUrl);
      }
   }
}
<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>


Modification d’une valeur avec Reflexil 1.8 dans JustDecompile

<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>

A ce point, vous allez me dire qu’en obfusquant le code, tout cela ne sert à rien. D’autant plus qu’il existe pléthore d’obfuscateurs pour .Net comme en témoigne Wikipedia. Et comme vous l’imaginez, il existe des desobfuscateurs. C’est là qu’entre en jeu De4Dot et que je me demande s’il y a vraiment un moyen de protéger son code et s’il existe une fin à ce cycle.

Références :

ILSpy

JustDecompile de Telerik

Reflector de Red Gate

Reflexil : http://reflexil.net/ et http://sourceforge.net/projects/reflexil/

[Je ne sais pas vous mais je décompile rarement des DLL pour le plaisir. IlSpy est un très bon décompilateur qui me suffit pour comprendre la logique d’un code.

Mais parfois faut aller plus loin. Cela vous est probablement arrivé de ne pas retrouver les sources d’un vieux développement à maintenir. Voir de travailler avec une dll ou un exécutable dont les variables sont écrites en dur dans le code. Avec ILSpy, vous pouvez exporter le code pour ensuite l’éditer dans Visual Studio.


Mon assembly de démonstration dans ILSpy

Vous pouvez aussi avoir envie de modifier directement le code ou ne pas avoir de Visual Studio sous la main. Pour cela j’ai trouvé un éditeur d’assembly : Reflexil. Mais il ne fonctionne qu’avec JustDecompile ou Reflector.

Je vous propose un exemple simple dont voici le code :

using System;
namespace NoParam
{
   public class SiteColl
   {
      private string PrivateUrl { get; set; }
      public string PublicUrl { get; set; }
      public SiteColl()
      {
         this.PrivateUrl = "http://private.sps2013";
         this.PublicUrl = "http://public.sps2013";
      }
      public override string ToString()
      {
         return string.Format("SiteColl.PrivateUrl : {0} | SiteColl.PublicUrl : {1} ",
                              this.PrivateUrl, this.PublicUrl);
      }
   }
}
<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>


Modification d’une valeur avec Reflexil 1.8 dans JustDecompile

<td>
  SiteColl.PublicUrl : http://public.sps2013_
</td>

A ce point, vous allez me dire qu’en obfusquant le code, tout cela ne sert à rien. D’autant plus qu’il existe pléthore d’obfuscateurs pour .Net comme en témoigne Wikipedia. Et comme vous l’imaginez, il existe des desobfuscateurs. C’est là qu’entre en jeu De4Dot et que je me demande s’il y a vraiment un moyen de protéger son code et s’il existe une fin à ce cycle.

Références :

ILSpy

JustDecompile de Telerik

Reflector de Red Gate

Reflexil : http://reflexil.net/ et http://sourceforge.net/projects/reflexil/

](https://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET)

](https://github.com/0xd4d/de4dot)