Набор методов противодействия динамическим способам снятия защиты программ от копирования включает следующие методы [47].
- Периодический подсчет контрольной суммы, занимаемой образом задачи области оперативной памяти, в процессе выполнения. Это позволяет:
— заметить изменения, внесенные в загрузочный модуль;
— в случае, если программу пытаются «раздеть», выявить контрольные точки, установленные отладчиком.
- Проверка количества свободной памяти и сравнение и с тем объемом, к которому задача «привыкла» или «приучена». Это действия позволит застраховаться от слишком грубой слежки за программой с помощью резидентных модулей.
- Проверка содержимого незадействованных для решения защищаемой программы областей памяти, которые не попадают под общее распределение оперативной памяти, доступной для программиста, что позволяет добиться «монопольного» режима работы программы.
- Проверка содержимого векторов прерываний (особенно 13h и 21h) на наличие тех значений, к которым задача «приучена». Иногда бывает полезным сравнение первых команд операционной системы, отрабатывающих этим прерывания, с теми командами, которые там должны быть. Вместе с предварительной очисткой оперативной памяти проверка векторов прерываний и их принудительное восстановление позволяет избавиться от большинства присутствующих в памяти резидентных программ.
- Переустановка векторов прерываний. Содержимое некоторых векторов прерываний (например, 13h и 21h) копируется в область свободных векторов. Соответственно изменяются и обращения к прерываниям. При этом слежение за известными векторами не даст желаемого результата. Например, самыми первыми исполняемыми командами программы копируется содержимое вектора 21h (4 байта) в вектор 60h, а вместо команд int 21h в программе везде записывается команда int 60h. В результате в явном виде в тексте программы нет ни одной команды работы с прерыванием 21h.
- Постоянное чередование команд разрешения и запрещения прерывания, что затрудняет установку отладчиком контрольных точек.
- Контроль времени выполнения отдельных частей программы, что позволяет выявить «остановы» в теле исполняемого модуля.
Многие перечисленные защитные средства могут быть реализованы исключительно на языке Ассемблер. Одна из основных отличительных особенностей этого языка заключается в том, что для него не существует ограничений в области работы со стеком, регистрами, памятью, портами ввода/вывода и т.п.
Настройка пространства Защиты — технологии Дэир -26 июня.
Автокорреляция представляет значительный интерес, поскольку дает некоторую числовую характеристику программы. По всей вероятности автокорреляционные функции различного типа можно использовать и тестировании программ на технологическую безопасность, когда разработанную программу еще не с чем сравнивать на подобие с целью обнаружения программных дефектов.
Таким образом, программы имеют целую иерархию структур, которые могут быть выявлены, измерены и использованы в качестве характеристик последовательности данных. При этом в ходе тестирования, измерения не должны зависеть от типа данных, хотя данные, имеющие структуру программы, должны обладать специфическими параметрами, позволяющими указать меру распознавания программы. Поэтому указанные методы позволяют в определенной мере выявить те изменения в программе, которые вносятся нарушителем либо в результате преднамеренной маскировки, либо преобразованием некоторых функций программы, либо включением модуля, характеристики которого отличаются от характеристик программы, а также позволяют оценить степень обеспечения безопасности программ при внесении программных закладок.
РЗ #57 Дифференциальные защиты линий (часть 1) ПНДЗ
Источник: studfile.net
Методы противодействия динамическим способам снятия защиты программ от копирования
Набор методов противодействия динамическим способам снятия защиты программ от копирования включает следующие методы.
Периодический подсчет контрольной суммы, занимаемой образом задачи области оперативной памяти, в процессе выполнения. Это позволяет:
− заметить изменения, внесенные в загрузочный модуль;
− в случае, если программу пытаются «раздеть», выявить контрольные точки, установленные отладчиком.
Проверка количества свободной памяти и сравнение и с тем объемом, к которому задача «привыкла» или «приучена». Это действия позволит застраховаться от слишком грубой слежки за программой с помощью резидентных модулей.
Проверка содержимого незадействованных для решения защищаемой программы областей памяти, которые не попадают под общее распределение оперативной памяти, доступной для программиста, что позволяет добиться «монопольного» режима работы программы.
Проверка содержимого векторов прерываний (особенно 13h и 21h) на наличие тех значений, к которым задача «приучена». Иногда бывает полезным сравнение первых команд операционной системы, отрабатывающих этим прерывания, с теми командами, которые там должны быть. Вместе с предварительной очисткой оперативной памяти проверка векторов прерываний и их принудительное восстановление позволяет избавиться от большинства присутствующих в памяти резидентных программ.
Переустановка векторов прерываний. Содержимое некоторых векторов прерываний (например, 13h и 21h) копируется в область свободных векторов. Соответственно изменяются и обращения к прерываниям. При этом слежение за известными векторами не даст желаемого результата.
Например, самыми первыми исполняемыми командами программы копируется содержимое вектора 21h (4 байта) в вектор 60h, а вместо команд int 21h в программе везде записывается команда int 60h. В результате в явном виде в тексте программы нет ни одной команды работы с прерыванием 21h.
Постоянное чередование команд разрешения и запрещения прерывания, что затрудняет установку отладчиком контрольных точек.
Контроль времени выполнения отдельных частей программы, что позволяет выявить «остановы» в теле исполняемого модуля.
Многие перечисленные защитные средства могут быть реализованы исключительно на языке Ассемблер. Одна из основных отличительных особенностей этого языка заключается в том, что для него не существует
ограничений в области работы со стеком, регистрами, памятью, портами ввода/вывода и т.п.
Автокорреляция представляет значительный интерес, поскольку дает некоторую числовую характеристику программы. По всей вероятности автокорреляционные функции различного типа можно использовать и тестировании программ на технологическую безопасность, когда разработанную программу еще не с чем сравнивать на подобие с целью обнаружения программных дефектов. Таким образом, программы имеют целую иерархию структур, которые могут быть выявлены, измерены и использованы в качестве характеристик последовательности данных. При этом в ходе тестирования, измерения не должны зависеть от типа данных, хотя данные, имеющие структуру программы, должны обладать специфическими параметрами, позволяющими указать меру распознавания программы. Поэтому указанные методы позволяют в определенной мере выявить те изменения в программе, которые вносятся нарушителем либо в результате преднамеренной маскировки, либо преобразованием некоторых функций программы, либо включением модуля, характеристики которого отличаются от характеристик программы, а также позволяют оценить степень обеспечения безопасности программ при внесении программных закладок.
Контрольные вопросы
1. Перечислите основные требования, предъявляемые к системе защиты от копирования.
2. Назовите методы, затрудняющие считывание скопированной информации.
3. Отобразите схематично общий алгоритм механизма защиты от несанкционированного использования программ в «чужой» среде размещения.
4. Приведите примеры статических и динамических методов для снятия защиты от копирования.
5. Сделайте сравнительный анализ основных методов защиты от копирования.
6. Почему многие перечисленные в этой главе защитные средства могут быть реализованы исключительно на языке Ассемблер?
Источник: mydocx.ru
Презентация на тему Основные подходы к защите от несанкционированного копирования
Функции средств защиты от копирования Инсталлированная программа для защиты от копирования при каждом запуске должна выполнять следующие действия: анализ аппаратно-программной среды компьютера, на котором она запущена, формирование на основе этого анализа текущих
- Главная
- Разное
- Основные подходы к защите от несанкционированного копирования
Слайды и текст этой презентации
Слайд 1 Основные подходы к защите от несанкционированного копирования
Слайд 2Функции средств защиты от копирования
Инсталлированная программа для защиты от копирования
при каждом запуске должна выполнять следующие действия:
анализ аппаратно-программной среды
компьютера, на котором она запущена, формирование на основе этого анализа текущих характеристик своей среды выполнения
проверка подлинности среды выполнения путем сравнения ее текущих характеристик с эталонными, хранящимися на винчестере
блокирование дальнейшей работы программы при несовпадении текущих характеристик с эталонными
Слайд 3Варианты выполнения процесса проверки подлинности:
с использованием множества операторов сравнения того,
что есть, с тем, что должно быть
с использованием механизма генерации
исполняемых команд в зависимости от результатов работы защитного механизма
с использованием арифметических операций.
Слайд 4Методы снятия защиты от копирования
Статические методы предусматривают анализ текстов защищенных
программ в естественном или преобразованном виде.
Динамические методы предусматривают слежение
за выполнением программы с помощью специальных средств снятия защиты от копирования.
Слайд 5Основные методы защиты от копирования
Криптографические методы
Метод привязки к идентификатору
Методы, основанные
на работе с переходами и стеком
Манипуляции с кодом программы
Методы противодействия
динамическим способам снятия защиты программ от копирования
Слайд 6Криптографические методы
Для защиты инсталлируемой программы от копирования при помощи криптографических
методов инсталлятор программы должен выполнить следующие функции:
анализ аппаратно-программной среды
компьютера, на котором должна будет выполняться инсталлируемая программа, и формирование на основе этого анализа эталонных характеристик среды выполнения программы
запись криптографически преобразованных эталонных характеристик аппаратно-программной среды компьютера на жесткий диск
Слайд 7 Можно выделить два основных метода защиты от копирования с использованием
криптографических приемов:
с использованием односторонней функции;
с использованием шифрования (которое также
может использовать односторонние функции).
Односторонние функции это функции, для которых при любом x из области определения легко вычислить f(x), однако почти для всех y из ее области значений, найти y=f(x) вычислительно трудно.
Слайд 8Метод привязки к идентификатору
Заключается в том, что на жестком диске
при инсталляции защищаемой от копирования программы формируется уникальный идентификатор, наличие
которого затем проверяется инсталлированной программой при каждом ее запуске. При отсутствии или несовпадении этого идентификатора программа блокирует свое дальнейшее выполнение.
Слайд 9Методы, основанные на работе с переходами и стеком
Данные методы основаны
на включение в тело программы переходов по динамически изменяемым адресам
и прерываниям, а также самогенерирующихся команд (например, команд, полученных с помощью сложения и вычитания). Вместо команды безусловного перехода может использоваться возврат из подпрограммы. Предварительно в стек записывается адрес перехода, который в процессе работы программы модифицируется непосредственно в стеке.
Стек определяется непосредственно в области исполняемых команд, что приводит к затиранию при работе со стеком. Этот способ применяется, когда не требуется повторное исполнение кода программы.
Слайд 10Манипуляции с кодом программы
1. включение в тело программы «пустых» модулей
(заключается во включении в тело программы модулей, на которые имитируется
передача управления, но реально никогда не осуществляется; эти модули содержат большое количество команд, не имеющих никакого отношения к логике работы программы.)
2. изменение защищаемой программы (заключается в изменении начала защищаемой программы таким образом, чтобы стандартный дизассемблер не смог ее правильно дизассемблировать.)
Слайд 11Методы противодействия динамическим способам снятия защиты программ от копирования
периодический подсчет
контрольной суммы, занимаемой образом задачи области оперативной памяти, в процессе
выполнения. Это позволяет: — заметить изменения, внесенные в загрузочный модуль; — в случае если программу пытаются «раздеть», выявить контрольные точки, установленные отладчиком;
проверка количества свободной памяти и сравнение и с тем объемом, к которому задача «привыкла» или «приучена». Это действия позволит застраховаться от слишком грубой слежки за программой с помощью резидентных модулей;
Слайд 12проверка содержимого незадействованных для решения защищаемой программы областей памяти, которые
не попадают под общее распределение оперативной памяти, доступной для программиста,
что позволяет добиться «монопольного» режима работы программы;
проверка содержимого векторов прерываний на наличие тех значений, к которым задача «приучена». Иногда бывает полезным сравнение первых команд операционной системы, отрабатывающих этим прерывания, с теми командами, которые там должны быть. Вместе с предварительной очисткой оперативной памяти проверка векторов прерываний и их принудительное восстановление позволяет избавиться от большинства присутствующих в памяти резидентных программ;
Слайд 13переустановка векторов прерываний; содержимое некоторых векторов прерываний копируется в область
свободных векторов; соответственно изменяются и обращения к прерываниям; при этом
слежение за известными векторами не даст желаемого результата.
постоянное чередование команд разрешения и запрещения прерывания, что затрудняет установку отладчиком контрольных точек;
контроль времени выполнения отдельных частей программы, что позволяет выявить «остановы» в теле исполняемого модуля.
Источник: theslide.ru