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

         

Защита сборок. Утилита ilasm.exe


Главное преимущество использования сборок, подписанных строгим именем, — защита их от декомпиляции. Запустим снова утилиту ildasm.exe и откроем приложение, выводящее на экран строку Hello World — SimpleApp. В меню "Файл" выбираем пункт Dump (или просто нажимаем Ctrl+D). В появившемся окне Dump options оставляем значения без изменений и нажимаем OK. Называем новый файл SimpleAppCrack.il и сохраняем его При этом мы сохранили содержимое нашего приложения в виде кода MSIL. Закрываем утилиту ildasm.exe.

Открываем файл SimpleAppCrack.il с помощью блокнота и изменяем строку Hello World на Hello World Cracked (рис. 9.8).


увеличить изображение
Рис. 9.8.  Изменение MSIL-кода

Сохраняем файл и закрываем его. Теперь нам нужно преобразовать MSIL код в исполняемый exe-файл. Для этого воспользуемся еще одной утилитой — ilasm.exe. В командной строке Visual Studio .NET набираем название утилиты и путь к файлу с MSIL-кодом (рис. 9.9):

ilasm.exe Путь к файлу\файл.il


увеличить изображение
Рис. 9.9.  Использование утилиты ilasm.exe для преобразования кода MSIL в исполняемый exe-файл

В папке с исходным файлом SimpleAppCrack.il появится файл SimpleAppCrack.EXE. Для просмотра его содержимого в командной строке указываем путь к нему и его название (рис. 9.10).


увеличить изображение
Рис. 9.10.  Запуск измененного файла SimpleAppCrack.EXE

Скопируйте всю папку с приложением SimpleApp и назовите его ProtectedSimpleApp. Откроем приложение и подпишем сборку строгим именем StrongKey.snk. Далее проделаем те же самые действия и попытаемся запустить измененный файл — появляется исключение System.IO.FileLoadExeption (рис. 9.11).


увеличить изображение
Рис. 9.11.  Ошибка при попытке запустить измененную сборку, подписанную строгим именем

На диске, прилагаемом к книге, вы найдете приложение ProtectedSimpleApp (Code\Glava9\ ProtectedSimpleApp).



Содержание раздела