2009-05-14 7 views
3

HI, Existe-t-il un moyen d'empêcher l'ouverture d'une DLL particulière en C# dans le réflecteur. Je peux ouvrir beaucoup de DLL et peut obtenir le code en utilisant le réflecteur. Mais lorsque vous essayez d'ouvrir certaines DLL, il affiche un message d'erreur indiquant que "La DLL partielle ne contient pas un en-tête CLI.".Y at-il un moyen d'empêcher l'ouverture de DLL dans un logiciel comme le réflecteur?

Comment puis-je faire une DLL comme ça?

Répondre

11

Etes-vous sûr que ces DLL sont managed-code-dlls? Je ne le pense pas, s'ils ne contiennent pas l'en-tête CLI, ils ne sont pas écrits en C#.

Et pour votre question, vous ne pouvez pas empêcher une DLL managée d'être ouverte dans un décompilateur, tout ce que vous pouvez faire est de l'obfusciter.

+3

ou tout autre langage .net pour cette question ... – Pondidum

+2

Bien sûr, je l'ai mentionné C# en particulier parce qu'il a demandé à propos DLLs écrit en C#. –

+0

Pourquoi l'en-tête CLI ne peut-il pas être supprimé, comme DEVENV.EXE? – AMissico

4

Si vous voulez protéger votre .net dll vous pourriez obscurcir votre assemblée

Free .NET Obfuscation Tools

Vous avez des commerciaux aussi ...

« Le dll particual ne contient pas d'en-tête de CLI. ". Le message apparaît dans Reflector car ce ne sont pas des DLLs gérées (.net).

+4

Vous ne pouvez pas protéger les DLL managées d'être décompilées, vous pouvez rendre plus difficile la compréhension du code décompilé avec obfuscator. – smok1

+0

Exactement vrai ... – abmv

2

Je pensais qu'il y avait une fois un certain code IL qui a causé un accident dans le réflecteur. Mais ce bug est corrigé maintenant. L'obfuscation est agréable - Vous pouvez également essayer de chiffrer certaines parties critiques de votre code et décrypter + charger + le compiler au moment de l'exécution. Le problème est de savoir comment stocker le mot de passe.

Vous ne pouvez pas l'empêcher d'être ouvert par le réflecteur.

2

Il n'y a aucun moyen d'empêcher Reflector d'ouvrir les assemblages .Net, mais vous rendez inutile tout en obscurcissant vos assemblages. Après l'obfuscation, les classes/méthodes/champs sont renommées, les chaînes inline dans les méthodes sont cryptées, les appels de méthode sont masqués, le flux de contrôle de méthode est brouillé, et ainsi de suite. Ainsi, quiconque utilise Reflector verra beaucoup d'ordures et ne sera pas en mesure d'en comprendre la majeure partie.

DISCLAIMER: Je travaille pour le logiciel LogicNP, les développeurs de Crypto Obfuscator

+0

En fait il est possible, comme le réflecteur fait des vérifications pour s'assurer qu'il ouvre un .net assembly, si vous pouvez faire échouer l'un des contrôles, alors il ne s'ouvrira pas – Qwerty01

Questions connexes