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? P>
Y a-t-il quelque chose qui empêcherait un bloc total de montage mon assemblée? P>
7 Réponses :
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 . p>
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)
Dotfuscator rend simplement la source décompilée plus difficile à lire - elle n'empêche pas la décompilation elle-même. P>
Vous ne pouvez pas bloquer un désassemblage de .NET P>
-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.
Si vous avez des professionnels ou Gold Dotfuscator, vous pouvez bloquer le programme de réflecteur d'ouvrir vos ASSEBMLIES. P>
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
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. P>
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. P>
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 . p>
Code Obfuscation va bien au-delà du simple renommage de classes, de membres et de variables, ce qui en fait une partie importante. P>
Par exemple, Dotfuscator utilise une technique brevetée appelée induction surcharge em>, dans laquelle de nombreuses méthodes sont renommées au même nom em> (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 . P>
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 em>, l'obfuscation peut fournir une barrière assez formidable. P>
Pour la plupart d'entre nous, c'est suffisant. P>