jeudi 15 mai 2014

DotNet Renamer : obfuscation d'assembly DotNet

Le code source de DotNet Renamer (librairie de renommage d'assembly) sera bientôt disponible sur mon Bitbucket


Cela fait maintenant 15 jours que je travail sur un vieux projet déterré de l'année passée !
Ce projet n'est en somme que l'ossature de mon dernier projet du même genre nommé : DotNet Patcher


Cette librairie permet actuellement le renommage des types et membres suivants :

  • Namespaces
  • Types
  • Methods
  • Properties
  • Fields 
  • CustomAttributes (uniquement l'attribut "AccessedThroughPropertyAttribute" !)
  • Events
  • Variables
  • Parameters
Il est bien évidement possible de tout paramétrer à souhait ou d'utiliser des paramètres définis (cf code en bas) ainsi que le choix des caractères de renommage aléatoire parmi lesquels :

  • Alphabétique (A à Z en minuscule et majuscule)
  • Chinois 
  • Braie
  • Invisible
Le renommage des noms de ressources est également pris en compte en adéquation avec le renommage des types et namespaces !

Voilà actuellement comment j'utilise ma librairie :

 
    Dim param As New Cls_Parameters("C:\AssemblyToRename.exe", "C:\AssemblyToRename-Renamed.exe")
    param.ReadAssembly()
 
    Dim context As New Cls_Context(param)
    context.RenamingAccept = New Cls_RenamerState() With _
       {.ReplaceSetting = Cls_RenamerState.ReplaceNamespaces.Empty, _
        .RenameSetting = Cls_RenamerState.RenameNamespaces.Full}
    context.RenamingType = Cls_RandomizerType.RenameEnum.Normal
 
    context.RenameAssembly()
    context.WriteAssembly()
    context.Clean()

L'explorateur de solutions de mon projet :



Je suis actuellement en train de commenter la source et ne cesserais de l'agrémenter les jours qui viennent.




A bientôt et bon codage !

Aucun commentaire:

Enregistrer un commentaire