Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Анализ программных реализаций. Практикум

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
21
Рисунок 7 – Настройка правил перед изменением
Рисунок 8 – Результат переименования переменных
22
Работа с SmartAssembly Запустите SmartAssembly, нажмите кнопку “New Project” и укажите
оригинальный (не защищенный еще ничем, включая Dotfuscator) exe-файл выбранной вами программы. С помощью кнопки “Set destination” укажите папку, куда сохранить exe-файл после защиты. Нужно указать другую папку, но сохранить оригинальное имя exe-файла.
Пользователю предлагаются различные параметры защиты его
приложения, такие как:
Выбранное программное обеспечение
Строгая подпись именем
Автоматическое создание отчетов об ошибках
Отчеты об использовании функций
Объединение зависимостей
Встраивание зависимостей
Сокращение
Обфускация
Запутывание потока управления
Ссылки на динамический прокси
Сжатие ресурсов и шифрование
Кодировка строк
Защита дизассемблера MSIL
Уменьшите количество выделяемой неиспользуемой памяти и
запечатывание классов, которые не наследуются
Создание отладочной информации
Далее проделайте несколько раз следующие шаги: а) включите одну из возможностей SmartAssembly (см. далее);
23
Рисунок 9 – Возможности SmartAssembly
б) нажмите Build и убедитесь, что результирующий exe-файл c защитой
успешно сгенерировался (появится «Build Succeeded!»);
в) откройте результирующий exe-файл в .NET Reflector, если он не был
ранее открыт, если же уже был открыт, то заставьте рефлектор перечитать его содержимое после изменений (F5 или кнопка Refresh на панели инструментов);
г) посмотрите, что изменилось, как применилась данная опция защиты
(при необходимости переходите между C# и IL-кодом с помощью раскрывающегося списка на панели инструментов .NET Reflector);
24
Рисунок 10 – Результат работы опции Obfuscation (Unicode)
д) проверьте работоспособность результирующего exe-файла путем его
запуска и ручного тестирования, если не работает, то возможно нужно настроить исключения;
е) перейдите назад в SmartAssembly, выберите пункт Project Settings; ж) выключите ранее включенную опцию защиты и перейдите к следующей
опции (см. далее).
С помощью этих шагов по отдельности попробуйте следующие опции
SmartAssembly (обязательно переведите с английского поясняющий текст в программе):
1. Dependencies Merging (слияние зависимостей) – позволяет соединить
несколько сборок вместе, если ваш exe-файл ссылается на другие файлы. Если ваша программа состоит из одного exe-файла, то эта опция не доступна для редактирования и считается примененной.
25
2. Dependencies Embedding (внедрение зависимостей) – позволяет сжать и
внедрить зависимости в главную сборку. Если ваша программа состоит из одного exe-файла, то эта опция не доступна для редактирования и считается примененной.
3. Prunning (отсечение) – удаление несущественного кода. Данная опция
затрудняет анализ кода путем удаление ненужной информации.
4. Obfuscation обфускация (переименование идентификаторов).
Попробуйте различные сочетания двух переключателей и уясните их смысл. Обратите внимание, что идентификаторы, использующиеся в XAML-файлах или указанные там, не переименовываются.
5. Control Flow Obfuscation (обфускация потока управления) – добавление
дополнительных ветвлений. Данная опция затрудняет анализ путем добавления спагетти-кода IL-ветвлений. Попробуйте все три уровня. В .NET Reflector используйте просмотр в виде IL-кода.
6. References Dynamic Proxy (ссылается на динамически прокси) –
скрывает вызовы методов стандартных .NET-классов через прокси-классы, добавляемые в сборки. Это также затрудняет анализ.
7. Resources Compression and Encryption (сжатие и шифрование ресурсов)
– позволяет защитить ресурсы, включая XAML-словари и XAML-файлы окон.
8. Strings Encoding (кодирование/шифрование строк) – затруднение
анализа путем шифрования строк. Попробуйте по отдельности и вместе три флажка.
9. MSIL Disassembler Protection (защита от дисассемблера MSIL) –
добавляет специальный атрибут к сборке, запрещающий дизассемблеру Ildasm.exe дизассемблировать сборку. ildasm.exe можно запустить из .NET Reflector через контекстное меню сборки.
10. Other optimizations (другие оптимизации). Попробуйте флажки по
отдельности. Первый сокращает выделяемую память, второй – запечатывает классы.
26
Плюсы SmartAssembly:
1. Обфускация кода: SmartAssembly обеспечивает обфускацию и
сжатие кода, усложняя его понимание злоумышленникам.
2. Защита от взлома: Позволяет внедрять дополнительные меры
безопасности для защиты приложения от взлома.
3. Улучшение производительности: Сжатие и оптимизация кода могут
улучшить производительность приложения.
4. Развертывание и лицензирование: Позволяет управлять
развертыванием и лицензированием приложений.
Минусы SmartAssembly:
1. Сложность отладки: Обфускация кода может усложнить отладку и
разработку приложения.
2. Затруднения в расширяемости: Некоторые меры безопасности могут
затруднить расширение или интеграцию с другими инструментами.
3. Дополнительные расходы: Использование SmartAssembly может
повлечь дополнительные расходы на лицензии и обслуживание.
Комбинированная защита Защитите вашу программу сначала с помощью Dotfuscator (чтобы
переименовать все идентификаторы, включая упоминающиеся в XAML-файлах), а затем с помощью SmartAssembly, используя все опции, и убедитесь в работоспособности результирующей программы. Также проверьте результаты в .NET Reflector.
Контрольные вопросы
1. Для чего нужны программы .NET Reflector, Dotfuscator, SmartAssembly
и чем они отличаются?
2. Как включать опции в SmartAssembly?
27
3. Что делает опция References Dynamic Proxy?
4. В чем предназначение MSIL Disassembler Protection?
5. Как происходит процесс переименования идентификаторов в программе
Dotfuscator?
28
4 Лабораторная работа № 3 Анализ сетевого трафика
Цель
Изучить возможности программы Wireshark, рассмотреть основные окна
программы и научиться перехватывать сетевой трафик.
Задачи
1. Загрузка и установка программы Wireshark.
2. Настройка программы Wireshark и запуск захвата трафика.
Теория
Wireshark – программа-анализатор трафика для компьютерных сетей
Ethernet и некоторых других. Wireshark имеет графический пользовательский интерфейс и гораздо больше возможностей по сортировке и фильтрации информации. Программа позволяет пользователю просматривать весь проходящий по сети трафик в режиме реального времени, переводя сетевую карту в неразборчивый режим (англ. promiscuous mode).
Wireshark – это приложение, которое «знает» структуру самых различных
сетевых протоколов, и поэтому позволяет разобрать сетевой пакет, отображая значение каждого поля протокола любого уровня. Поскольку для захвата пакетов используется pcap, существует возможность захвата данных только из тех сетей, которые поддерживаются этой библиотекой. Тем не менее, Wireshark умеет работать с множеством форматов входных данных, соответственно, можно открывать файлы данных, захваченных другими программами, что расширяет возможности захвата. Для расширения возможностей программы возможно использование скриптового языка Lua.
29
Ход работы
Установка программы WireShark Загрузка программы осуществляется с официального сайта по адресу:
www.wireshark.org.
Рисунок 11 – Загрузка WireShark
В верхнем левом углу нажмите поле «Download». В открывшемся окне
выберите версию программы в соответствии с архитектурой и операционной системой вашего ПК. Сразу после этого начнется загрузка. Местонахождение загруженного файла зависит от браузера и операционной системы, которыми вы пользуетесь. В ОС Windows загрузочные файлы по умолчанию находятся в папке «Загрузки». Программа Wireshark готова для установки на ваш компьютер. Загруженный файл называется Wireshark – win – x.x.x.exe, где «x» соответствует номеру версии программы.
Дважды нажмите на файл, чтобы начать установку. Ответьте на все
сообщения безопасности, которые появятся на экране.
30
Рисунок 12 – Выбор установщика
При первой установке программы Wireshark на компьютер или в том
случае, когда предыдущая версия была удалена, откроется мастер установки программы Wireshark. Нажмите кнопку «Next» (Далее). Выполните все инструкции по установке. Когда откроется окно «License Agreement» (Лицензионное соглашение), нажмите кнопку «I accept» (Принять). Вид окна «Лицензионного соглашения» представлен на рис. При выборе компонентов оставьте настройки по умолчанию и нажмите кнопку «Next» (Далее).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]