Оригинал: blogs.msdn.com
MSIL Disassembler (ildasm.exe) – это инструмент, который может быть использован для просмотра MSIL-кода .NET приложений или DLL-библиотек. Многие из вас наверняка использовали его, чтобы заглянуть в ассемблерный код приложений при отладке или устранении каких-либо неисправностей.
Я часто использую его, чтобы проверить некоторые вещи во время отладки. Однажды, когда я попытался дизассемблировать один из модулей, я получил следующее сообщение об ошибкеProtected module – cannot dissasemble.
После небольшого изучения данной проблемы я обнаружил, что в.NET 2.0появился новый атрибут, который запрещаетMSIL Disassemblerдизассемблировать ваш модуль. Для этого нужно использовать атрибутSuppressIldasmAttribute, который доступен в пространстве именSystem.Runtime.CompilerServices. На рисунке ниже показано, как использовать этот атрибут. Я просто указалSuppressIldasmAttributeдля своего пространства имен (namespace).
Если вы скомпилируете указанный выше код и попытаетесь его открыть для дизассемблирования с помощьюildasm.exe, вы получите сообщение об ошибкеProtected module – cannot disassemble.
При использовании данного атрибута стоит помнить, что он предотвращает работу толькоildasm.exe, т.е. вы всё еще можете использовать, например,Reflectorдля декомпиляции кода. Ниже показан результат работыReflector, который был применен к тому же защищенному модулю.
© Translated by Prosper-H from r0 Crew







Reply With Quote
Thanks
