Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
622231 / 622231 / очн 622231 / ПАЗИ 622231 / МУ_ПЗ_ПАЗИ.doc
Скачиваний:
74
Добавлен:
10.05.2015
Размер:
2.04 Mб
Скачать

Контрольные вопросы

  1. Перечислите основные функции HASP4Standard,MemoHASP,TimeHASP,NetHASP.

  2. Попарно сравните возможности ключей HASP4Standard,MemoHASP,TimeHASP,NetHASP.

  3. Словесно опишите несколько приемов к защите ПО, которые Вы будете использовать, при использовании HASP4Standard,MemoHASP,TimeHASP,NetHASP.

  4. В чем достоинства и недостатки пристыковочного механизма к защите ПО с помощью HASP и защиты, основанной на использовании API функций HASP.

  5. Может ли электронный ключ HASP использоваться для решения задач идентификации пользователей, если да, то какие типы?

12. Исследование моделей защит программного обеспечения. Средства динамического изучения по. Отладка программ и нейтрализация защит в отладчике SoftIce

Цель занятия - познакомиться с методами реализации обратного проектирования. Научиться работать с отладчиками, функционирующими под ОС Windows. Познакомиться с приемами нейтрализации защитных механизмов ПО.

Теоретический материал

Одна из основных задач, решаемая злоумышленником при исследовании ПО, – анализ логики работы программы, поиск в ней участков кода, отвечающих за реализацию защитных механизмов, детальное исследование принципов работы модулей защиты. При этом ставится задача представления машинного кода на как можно более высоком уровне абстракции с целью упрощения его понимания.

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

Основными методами обратного проектирования являются отладка и дизассемблирование программ.

Отладчики– программные средства, позволяющие выполнять программу в пошаговом режиме, контролировать ее выполнение, вносить изменения в ход выполнения. Данные средства позволяют проследить весь механизм работы программы и являются средствами динамического исследования работы программ. Наиболее важным и полезным для злоумышленника свойством отладчиков является то, что исследуемая программа полностью находится под его контролем и злоумышленник легко может влиять на ход ее выполнения. Без полного контроля над программой взломщик, зачастую, не может добиться положительных результатов.

Из всех существующих для Windows–платформ отладчиков, наибольшей популярностью пользуется отладчик SoftIce фирмы Numega. Большим его преимуществом является то, что SoftIce работает в 0-м кольце защиты. Обычно ОС имеет права полного доступа ко всем остальным выполняемым программам, так как она работает в 0-м кольце (наиболее привилегированном), а приложения в 3-м (наименее привилегированном). Частично осуществлять управление запущенными приложениями можно из 1-го и 2-го кольца защиты, именно так работает большинство отладчиков из крупных пакетов для разработки программ. Разработчики из Numega подошли к делу более профессионально и создали SoftIce – отладчик, который работает в 0-м кольце защиты (для этого он загружается до загрузки ядра ОС Windows) и позволяет полностью контролировать не только все выполняемые системой задачи, но и саму OC Windows.

Очень важной особенностью SoftIce является то, что он позволяет перехватывать точки вызова программой API функций Windows. На вызове данных функций основана работа всех приложений Windows. Взломщик, используя отладчик SoftIce, может установить точки прерывания на вызов необходимых ему API функций, имеющих определяющее значение для локализации защитных механизмов.

Основы работы с SoftIce

SoftIce запускается в любое время при работе ОС с помощью комбинации клавиш Ctrl+D. Выход из отладчика осуществляется по функциональной клавише F5.

Отладчик содержит следующие окна:

1. Окно регистров. Включается и выключается по команде wr. В данном окне отображается содержимое регистров процессора.

2. Окно данных (располагается под окном регистров). В данном окне отображается содержимое участка памяти в шестнадцатеричном и текстовом виде с заданного адреса. В данном окне можно вывести информацию, содержащуюся начиная с конкретного адреса или с адреса, определяемого некоторым регистром. Вывод осуществляется по команде db адрес или db регистр. Окно включается и выключается командой wd.

3. Окно кода. В данном окне отображается дизассемблированный текст исследуемой программы. Выделенная строка указывает на команду, которая будет выполнена на следующем шаге. В нижней части окна показано, в каком модуле исследователь в данный момент находится. Включается и выключается окно с помощью команды wc.

4. Самое нижнее окно: окно команд SoftIce.

Пошаговое исполнение программы реализуется с помощью функциональной клавиши F8.

По клавише F12 программа исполняется до тех пор, пока не встретит команду RET, после чего выполнение программы прерывается и управление снова передается отладчику. Клавиша F12 очень полезна для выхода из подпрограмм, вызванных командой CALL. Можно пропустить их пошаговое исполнение с помощью F12 и начать пошаговое исполнение с команды, следующей за командой RET.

По команде F10 осуществляется выполнение команды без входа в нее (например, выполняется полностью команда CALL, а вход в нее не производится).

SoftIce позволяет пользователю устанавливать точки останова в отлаживаемой программе. При этом, точка останова может быть установлена как по конкретному адресу, так и на вызов некоторой API функции Windows. Точка останова устанавливается по команде bpx адрес или bpx имя API функции. Удаление точек останова реализуется по команде bc. Для удаления всех точек останова используется команда bc *.

Перечень WinAPI-функций, необходимых для использования в работе, приведен ниже:

MessageBoxA, MessageBoxIndirectA: вызов окна сообщений Windows приложениями Win32.

MessageBox, MessageBoxIndirect: вызов окна сообщений Windows приложениями Win16.

GetDlgItemTextA: чтение данных из текстового поля диалогового окна.

GetTickCount: количество тиков со времени запуска Windows.

Соседние файлы в папке ПАЗИ 622231