8
votes

Comment fonctionne le dotfuscatrice?

Comment fonctionne le dotfuscatrice? J'ai essayé d'obscurcir certaines de mes classes et j'ai renommé les méthodes / la classe à A, B, C, etc. mais je peux toujours voir le code à l'intérieur de ces méthodes? Est-ce que je fais quelque chose de mal?

Y a-t-il quelque chose qui empêcherait un bloc total de montage mon assemblée?


0 commentaires

7 Réponses :


7
votes

C'est la façon dont il est censé fonctionner. Votre code est toujours accessible, plus difficile à comprendre. Si vous voulez quelque chose de "plus fort", jetez un coup d'œil à xenocode postbuild .


6 commentaires

Assurez-vous de bien comprendre les différences entre l'obfuscation claire et certaines des options que postbuild a (comme le support binaire autochtone). Vous perdez beaucoup de flexibilité de la framework .NET avec des binaires natifs.


Xenocode affecterait-elle la vitesse / la taille du programme? Est-ce que cela compilait l'application à 100% de binaires natifs, alias presque impossible à décompiler?


Cela affectera la vitesse / la taille du programme. Du site PostBuild: "Génération d'exécution native: PostBuild permet la création d'un exécutable X86 natif permettant à votre application de fonctionner, avec ou sans une structure .NET installée." Vous vous retrouveriez avec quelque chose qui serait indiscernable d'une application écrite avec C ++ non gérés. Cependant, vous perdez toutes les avantages de la portabilité de l'utilisation du cadre .NET.


Perdre la portabilité .. qui se soucie vraiment de ça? Vous venez de recompiler pour la nouvelle plate-forme, comme nous le faisions.


Xenocode compile-t-il en fait une application au code natif? Je pensais que cela crypte le programme avec toutes les dépendances et le presse dans le fichier .exe. Lors de l'exécution du programme, il extrait et exécute les mêmes assemblages .NET. Est-ce que je me trompe ici?


(Il n'a pas besoin de framework installé, car tous les binaires de cadre pertinents sont également emballés dans .exe)



1
votes

Dotfuscator rend simplement la source décompilée plus difficile à lire - elle n'empêche pas la décompilation elle-même.


0 commentaires

4
votes

Vous ne pouvez pas bloquer un désassemblage de .NET



3 commentaires

-1: Vous pouvez bloquer le désassemblage, jetez un coup d'œil à ma réponse. Utilisation de Xenocode PostBuild Vous pouvez compiler votre application .NET dans un binaire indigène.


@Jon, alors ce n'est plus .net, le point est avec 100% .NET EXE, vous ne pouvez pas le bloquer


L'OP dit "Y a-t-il quelque chose qui empêcherait un bloc total de mouchage mon assemblée?" Et la réponse est oui, il y a.



1
votes

Si vous avez des professionnels ou Gold Dotfuscator, vous pouvez bloquer le programme de réflecteur d'ouvrir vos ASSEBMLIES.


2 commentaires

Si cela est fait, vous pouvez utiliser l'ildasser pour désassembler le code, puis supprimer l'attribut «Ne pas afficher mon code», puis illasm it Retour. Le réflecteur vous permettra de le voir maintenant. :)


Professionnel ou or prend également en charge le code obfuscation qui rend le code très difficile à lire



2
votes

Malheureusement, il n'est pas moyen d'empêcher quelqu'un de refléter votre assemblée et de le dissajuster à votre code source. Les outils d'obfuscation tels que Dotfuscator rendront considérablement plus difficile pour quelqu'un de lire le code désassemblé, où pratiquement tous les noms lisibles à la lecture humaine peuvent être remplacés par des symboles sans signification.

Si vous libérez votre code n'importe où, si quelqu'un est déterminé suffisamment, ils seront en mesure de renverser l'ingénieur. Le mieux que vous puissiez faire est de rendre cela ne vaut pas leur temps de le faire.


0 commentaires

2
votes

La version fournie avec Visual Studio est limitée et je ne me fierais pas à l'obFuscation à grande échelle si vous devez déployer quelque chose sur les sites clients. Un EAUZFUSCATOR.NET .


0 commentaires

13
votes

Code Obfuscation va bien au-delà du simple renommage de classes, de membres et de variables, ce qui en fait une partie importante.

Par exemple, Dotfuscator utilise une technique brevetée appelée induction surcharge , dans laquelle de nombreuses méthodes sont renommées au même nom (ceci est possible tant qu'ils ont des signatures différentes) . Les solutions préventives citent les cas où un tiers de toutes les méthodes du code sont renommés à A (). D'autres techniques impliquent une réécriture d'itérations simples comme récursives, ainsi que Code Morphing .

En réalité, les techniques d'obfuscation modernes sont parfaitement adéquates pour rendre le code pratiquement impossible à inverser ingénieur, au moins à la main. Bien qu'il soit vrai que les assemblages .NET ne peuvent jamais être réévalués en principe , l'obfuscation peut fournir une barrière assez formidable.

Pour la plupart d'entre nous, c'est suffisant.


0 commentaires