Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (3).doc
Скачиваний:
203
Добавлен:
28.06.2014
Размер:
508.93 Кб
Скачать

8.2. Защита инсталляционных дисков и настройка по на характеристики компьютера

Установка ПО:

  1. проверка легальности установки (получение ключа от пользователя, считывание ключевой информации с дистрибутива);

  2. копирование файлов на жесткий диск;

  3. изменение реестра, главного меню, рабочего стола и т.д.;

  4. настройка на характеристики компьютера и пользователя для предотвращения нарушения лицензионного соглашения.

Для защиты инсталляционных дисков используется некопируемая метка:

  • физическая (повреждение);

  • магнитная:

  • вынос метки за пределы поля копирования носителя;

  • нестандартное форматирование;

  • использование временных характеристик чтения/записи;

  • комбинация способов.

  1. нестандартное форматирование: выбирается ключевая дорожка носителя и, например, вместо 18 секторов по 512 байт записывается 1 сектор длиной 8196 байт;

  2. использование временных характеристик: на ключевой дорожке сектора нумеруются в обратном порядке (18, 17, …, 1), читается 1-й сектор, делается попытка многократного чтения соседних секторов (1 и 2 будут сильно разнесены), засекается время чтения;

  3. метки: на дистрибутив наносится локальное повреждение, путем последовательного чтения и записи определяется адрес поврежденного сектора.

  4. получение параметров компьютера:

  • получить совокупность параметров: имя пользователя, имя компьютера, размещение системных файлов, характеристики аппаратного обеспечения, версии ОС и ФС и т.д.;

  • хеширование собранной информации;

  • получение ЭЦП;

  • сохранение ЭЦП в реестре;

–: после легального обновления программа не будет работать.

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

  • цель нарушителя

  • инструменты нарушителя

  • противодействие

  • защита от отладчика

  • защита от дизассемблирования

Цель нарушителя:

  • снятие системы защиты,

  • раскрытие системы проверки и создание генератора правильной ключевой информации,

  • внесение изменений в исполняемый код с целью обхода блока проверки.

Инструменты нарушителя:

  • отладчик,

  • дизассемблер,

  • программы мониторинга.

Противодействие: обнаружение присутствия инструмента нарушителя + ответная реакция,

Защиты от отладчика

Обнаружение присутствия отладчика:

  • перебор всех открытых главных окон (EnumWindows, toolhelp.dll)

  • IsDebuggerPresent (NT, 2000, XP Pro)

  • GetEnvironmentVariables

  • 0xcc – если на вход в программу ставится точка прерывания, то ставится 0xcc

  • замер времени выполнения

Варианты действий:

  • закрытие окна отладчика (DestroyWindow, порча стека, COM – Release, DDE – poke, аварийное завершение),

  • отключение блока проверки (временное снятие защиты).

Защита от дизассемблирования

  1. самомодификация кода;

  2. максимальное усложнение проверки:

  • использование асимметричного шифрования (ключ – ID и пароль – шифруется ключом автора или владельца);

  • хеширование;

  • нейронная сеть, аппроксимирующая алгоритм проверки;

  • x – вводимая информация, y – проверяемая информация, F = z1○z2, y = F(x); в блоке проверки: z2(x) = z1-1(y);

  1. проверка контрольных сумм;

  2. использование «усложненного» программирования:

  • нелинейный алгоритм проверки;

  • хранение проверочной информации в различных частях системы (атомы, память окна, класс окна);

  • нестандартная проверка (правильное значение – false, try {sqrt(-1)} catch(…) {проверка});

  • вынесение проверки в обработчик стандартного события (WM_PAINT);

  • имитация проверки в разных местах программы;

  • хранение проверочной информации в разных переменных разного типа;

  • косвенная адресация;