Создание Windows-приложений на основе Visual C#



              

Утилита .NET Reflector. Как вскрывать защищенные сборки


При использовании утилиты ildasm.exe бросается в глаза аскетичный дизайн приложения и неудобство работы с ней. Невозможность изменения размеров информационной панели сборки, расположенной внизу программы, открытие блоков кода в отдельных окнах, отображение только MSIL-кода наводит на мысль, что разработчики среды .NET сознательно оставили минимальную функциональность приложения для сведения общения с ним пользователей к минимуму. Программа .NET Reflector (версия 4.1.84.0) — единственный существующий браузер классов .NET-компонент, позволяющий просматривать метаданные, IL-инструкции и XML-документацию сборок, а также декомпилировать их, – гораздо более удобная утилита. Она имеет статус freeware, поэтому вы можете найти ее на диске, прилагаемом к книге, — Code\Glava9\ Reflector.zip, или скачать с сайта разработчика — http://www.aisto.com/roeder/dotnet. Рассмотрим, как просмотреть содержимое сборки, подписанной строгим именем, и использовать код в своих целях. Запустим программу, откроем пункт меню File\Open и выберем файл ProtectedSimpleAppCrack.EXE, который нам не удалось запустить (см. рис. 9.11). Выделив название сборки, на панели Disassembler увидим содержимое значение атрибутов [assembly] (если у вас не открыта панель Disassembler, выберите Tools/Disassembler) (рис. 9.12).

Главное окно программы .NET Reflector, на панели Disassembler выведены значения атрибутов [assembly]

увеличить изображение
Рис. 9.12.  Главное окно программы .NET Reflector, на панели Disassembler выведены значения атрибутов [assembly]

Обратите внимание на параметр AssemblyKeyFile панели Disassembler — мы действительно работаем со сборкой, подписанной строгим именем! Каждый объект, отображаемый на панели, является ссылкой, щелкая на которую, мы переходим к соответствующему классу. Открыв окно Options — в пункте меню View\Options, можно выбрать язык отображения объектов, что является своеобразным переводчиком (рис. 9.13)!

Выбор языка в окне Options

Рис. 9.13.  Выбор языка в окне Options

Выбрав язык C# и перемещаясь по объектам любой сборки, можно копировать и вставлять код прямо в свой листинг (рис. 9.14).

Представление кода сборки на языке C#

увеличить изображение
Рис. 9.14.  Представление кода сборки на языке C#

Утилита не имеет возможности сохранять изменения в сборках (по крайней мере, описываемая версия), но в большинстве случаев вполне достаточно просмотреть и при необходимости скопировать весь код или фрагмент.




Содержание  Назад  Вперед