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

Contribuez .NET Discussion :

ConfuserEx


Sujet :

Contribuez .NET

  1. #1
    Robot Forum
    Avatar de forum
    Inscrit en
    Novembre 1999
    Messages
    2 973
    D�tails du profil
    Informations forums :
    Inscription : Novembre 1999
    Messages : 2 973
    Par d�faut ConfuserEx
    Bonjour,

    Je vous propose un nouvel �l�ment � utiliser : ConfuserEx

    ConfuserEx est un projet open source cod� en C#, il permet de prot�ger vos applications cod� en DotNet.

    Qu'en pensez-vous ?

  2. #2
    Expert confirm�

    Avatar de Fran�ois DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par d�faut
    Bonjour,

    Il aurait �t� bien de pr�ciser contre quoi cela prot�ge

    A priori, il s'agit d'obfusquer le code. Quel(s) atout(s) par rapport � des solutions d�j� existantes ?

  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 Dorinf,

    Avant toute chose ConfuserEx est le successeur du tr�s renomm� Confuser, et il est Open source donc modifiable � souhait pour peu que l'on respecte sa licence (MIT). Donc �a c'est un principal atout.

    Ensuite, je vois d�j� venir les remarques du genre il ne prot�ge rien du tout car de4dot et d'autres outils home made permettent de rendre visible certaines portions de codes ....... Un obfuscateur dotnet n'a jamais eu la vocation de prot�ger un code source mais de le rendre un poil moins compr�hensible aux yeux de ceux qui souhaiteraient s'approprier la logique du projet ! Ceux qui stockent des informations sensibles dans leur projet et utilisent un obfuscateur pour �viter qu'on ne les voit n'ont absolument rien compris....... il existe des techniques plus �volu�es pour se pr�munir de cela en h�bergeant une portion du code sensible sur un serveur et en proc�dant � des requ�tes s�curis�es.....

    Brefff..... je ne suis pas l� pour vendre un produit mais pour partager un projet opens source qui fait ses preuves compar� � d'autres �diteurs.

    Voil� en quelques mots les fonctionnalit�s de ConfuserEx :


    - Anti Debug, Anti ILDASM
    Cela permet d'�viter tout profilage, d�bogage ou analyse statique de l'assembly (gr�ce aux APIs manag�s et non manag�s et antinet de 0xd4d)

    - Anti Dump
    Cela emp�che de r�cup�r� l'assembly charg�e en m�moire.
    Cette protection produit des modules non v�rifiables.

    - Anti IlDasm
    Cette protection marque le module avec un attribut (SuppressIldasmAttribute) afin que ILDasm ne monte pas l'assembly.

    - Anti Tamper (Encryption de M�thodes)
    Cette protection assure l'int�grit� de l'application.
    Elle crypte les m�thodes avec la somme de contr�le de l'ensemble du module pour s'assurer que le module ne sera charg� que si aucune modification n'a �t� apport�e � celui-ci.

    --> Mode : Ce param�tre d�finit la mani�re dont ConfuserEx d�crypte les m�thodes. Les valeurs prises en charge sont:

    *Normal : ConfuserEx valide la somme de contr�le et d�chiffre les m�thodes au lancement de l'application.
    *Jit: ConfuserEx valide la somme de contr�le au d�but de l'application et d�crypte les m�thodes juste avant que chaque m�thode soit compil�e � l'aide de hooks JIT. (Probablement Incompatibile avec les futures version de .NET Framework. A Utiliser avec pr�cautions)

    --> Key : Ce param�tre d�finit la mani�re dont ConfuserEx d�rive la cl� de d�cryptage. Les valeurs prises en charge sont:

    *Normal: ConfuserEx utilise des algorithmes statiques avec des param�tres al�atoires pour d�river la cl� de d�chiffrement.
    *Dynamic: ConfuserEx utilise des algorithmes g�n�r�s dynamiquement pour d�river la cl� de d�cryptage.

    - Constantes :
    Cette protection code et compresse des constantes (nombres, cha�nes et initialiseurs) dans le code.

    --> Mode : Ce param�tre d�finit la mani�re dont ConfuserEx encode les constantes. Les valeurs prises en charge sont:

    *Normal : ConfuserEx utilise des algorithmes statiques avec des param�tres al�atoires pour encoder les constantes.
    *Dynamique : ConfuserEx utilise des algorithmes g�n�r�s dynamiquement pour encoder les constantes.
    *X86 : ConfuserEx utilise dynamiquement des expressions g�n�r�es en native x86 pour encoder les constantes. (Produit des modules non v�rifiables)

    --> DecoderCount : Ce param�tre est une valeur enti�re d�finissant combien de d�codeur constant ConfuserEx g�n�re. La valeur par d�faut est 5.

    Comme chaque d�codeur a de l�g�res diff�rences, plus de d�codeurs rendraient le d�codage manuel des constantes par les attaquants plus ennuyeux, mais la taille du fichier de sortie augmenterait.

    --> �l�ments : Ce param�tre d�finit quel type de constantes doivent �tre encod�es. Les valeurs possibles sont une combinaison de:

    *S: Constantes de cha�ne (� l'exclusion des constantes primitives)
    *N: Constantes num�riques (� l'exclusion des constantes primitives)
    *P: Les constantes primitives (cha�nes vides et num�ros couramment utilis�s, par exemple 0, -1, 1, 2, etc.)
    *I: Array initialisation (ceux utilisant RuntimeHelpers.InitializeArray)

    La valeur est insensible � la casse. Par exemple, une valeur de "SI" indique des cha�nes non vides et les initialiseurs sont encod�s. La valeur par d�faut est "SI".

    --> Cfg : Ce param�tre est une valeur bool�enne si le d�codage des constantes est bas� sur une variable d'�tat d�pendant du flux de contr�le. La valeur par d�faut est False.

    L'activation de cette fonctionnalit� am�liore consid�rablement la r�sistance de la protection, mais la performance d'ex�cution pourrait avoir un impact.

    - Control Flow Protection :
    Cette protection d�forme le code dans le corps des m�thodes afin que les d�compileurs ne puissent pas d�compiler les m�thodes.

    --> Type : Ce param�tre d�finit comment ConfuserEx manipule le code des m�thodes. Les valeurs prises en charge sont:

    *Switch: ConfuserEx ins�re une machine d'�tat de base de commutateur pour r�organiser le code.
    *Jump : ConfuserEx ins�re des sauts dans les m�thodes pour produire le code spaghetti traditionnel. (Produit des modules non v�rifiables)

    --> Pr�dicat : Ce param�tre d�finit comment ConfuserEx stocke la variable d'�tat. Les valeurs prises en charge sont:

    *Normal : ConfuserEx utilise la variable d'�tat directement.
    *Expression : ConfuserEx code la variable d'�tat � l'aide d'expressions g�n�r�es dynamiquement.
    *X86: ConfuserEx code la variable d'�tat � l'aide d'expressions x86 natives g�n�r�es dynamiquement. (Produit des modules non v�rifiables)

    --> Intensit� : Ce param�tre est une valeur enti�re de 0 � 100, indique la taille de chaque bloc de code fractionn�. La valeur par d�faut est 60.

    --> Depth : Ce param�tre d�finit la profondeur de l'expression g�n�r�e si predicate est d�fini sur expression ou x86. La valeur par d�faut est 4.

    --> Junk : Ce param�tre est une valeur bool�enne qui indique si des codes ind�sirables sont ins�r�s. La valeur par d�faut est False. (Produit des modules non v�rifiables)


    - Invalid Metadatas :
    Cette protection ajoute des m�tadonn�es non valides aux modules pour emp�cher le d�sassemblage ou le d�compilateur de les ouvrir.


    - Renommage :
    Cette protection occultent le nom des symboles de sorte que le code source d�compil� ne peut ni �tre compil� ni lu.

    --> Mode : Ce param�tre d�finit la mani�re dont ConfuserEx renomme les symboles. Les valeurs prises en charge sont:

    *Empty : ConfuserEx renomme tous les symboles en une cha�ne vide.
    Attendez-vous � de nombreux probl�mes lors de l'utilisation de ce mode.
    *Unicode: ConfuserEx renomme les symboles en caract�res Unicode illisibles.
    La r�flexion peut ne pas fonctionner dans ce mode.
    *Ascii: ConfuserEx renomme les symboles en caract�res ASCII lisibles.
    La r�flexion peut ne pas fonctionner dans ce mode.
    *Lettres: ConfuserEx renomme les symboles en lettres anglaises.
    *D�codable: ConfuserEx renomme les symboles en cha�ne d�codable. Le mappage de nom brouill� est enregistr� dans le dossier de sortie dans le fichier "symbols.map".
    *S�quentiel: ConfuserEx renomme les symboles en cha�ne s�quentielle. Le mappage de nom brouill� est enregistr� dans le dossier de sortie dans le fichier "symbols.map".
    *R�versible: ConfuserEx crypte les symboles. Les noms brouill�s peuvent �tre d�cod�s en fournissant le mot de passe utilis� dans l'obfuscation.
    *Debug: ConfuserEx ajoute un caract�re "underscore" de soulignement avant les symboles. Non destin� � la production.

    --> Password : valeur de cha�ne, indique le mot de passe ConfuserEx doit utiliser pour chiffrer les noms de symboles lorsque le mode r�versible est utilis�. Seulement efficace sur les modules.
    --> RenameArgs : valeur bool�enne, indique si ConfuserEx doit supprimer le nom des param�tres des m�thodes.
    --> Flatten : valeur bool�enne, indique si ConfuserEx doit aplatir les types en supprimant les espaces de noms.
    --> ForceRen : valeur bool�enne, indique si ConfuserEx doit renommer les symboles m�me si l'analyseur indique qu'il ne doit pas �tre renomm�.
    --> RenPublic : valeur bool�enne, indique si ConfuserEx doit renommer les symboles m�me si l'�l�ment est visible en dehors de l'assembly.
    --> RenPdb : valeur bool�enne, qui indique si ConfuserEx doit renommer les noms de variables et les noms de fichiers dans PDB.


    - References Proxy (types, m�thodes et champs) :
    Cette protection encode et cache les r�f�rences des types, m�thodes et champs.

    --> Mode : d�finit la mani�re dont ConfuserEx cache les r�f�rences. Les valeurs prises en charge sont:

    *L�ger : ConfuserEx ajoute une m�thode d'indirection comme proxy.
    *Strong: ConfuserEx ajoute un d�l�gu� de m�thode dynamique comme proxy.
    *Ftn: ConfuserEx utilise le pointeur de fonction comme proxy.

    --> Encoding : d�finit la mani�re dont ConfuserEx code les r�f�rences de m�thode. Les valeurs prises en charge sont:

    *Normal : ConfuserEx utilise des algorithmes statiques avec des param�tres al�atoires pour encoder les r�f�rences.
    *Expression : ConfuserEx utilise des expressions g�n�r�es dynamiquement pour encoder les r�f�rences.
    *X86: ConfuserEx utilise des expressions natives x86 g�n�r�s dynamiquement pour encoder les r�f�rences. (Produit des modules non v�rifiables)

    --> Internal : valeur bool�enne, indique si ConfuserEx doit �galement masquer les r�f�rences internes.

    --> TypeErasure : valeur bool�enne, indique si ConfuserEx doit masquer les types de param�tres de m�thode.

    *Depth : d�finit la profondeur de l'expression g�n�r�e si le codage est d�fini sur expression ou x86.
    *InitCount : d�finit le nombre d'initiateurs d�l�gu�s � ajouter si le mode est d�fini sur strong. La valeur par d�faut est 16.


    - Resources :
    Cette protection encode et compresse les ressources int�gr�es.

    - Packer :
    Ce packer r�duit la taille du fichier de sortie en utilisant l'algorithme de compression LZMA. Un seul module ex�cutable peut �tre dans le projet et il est utilis� comme module d'entr�e principal.

    --> Key : d�finit la mani�re dont ConfuserEx d�rive la cl� de d�cryptage. Les valeurs prises en charge sont:

    *Normal: ConfuserEx utilise des algorithmes statiques avec des param�tres al�atoires pour d�river la cl� de d�chiffrement.
    *Dynamic: ConfuserEx utilise des algorithmes g�n�r�s dynamiquement pour d�river la cl� de d�cryptage.

    --> Compat : valeur bool�enne, indique si ConfuserEx doit utiliser le mode de compatibilit� qui fonctionne avec Mono.

  4. #4
    Expert confirm�

    Avatar de Fran�ois DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par d�faut
    Merci pour cette description plus que d�taill�e

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