среда, 12 января 2011 г.

Методы защиты ПО от несанкционированного копирования

Блоггер
tweetn
livejournal
Мой Круг Google Buzz
Проблема несанкционированного копирования является сплошь и рядом. Она обусловлена "самой сутью человеческой психологии и будет существовать до тех пор, пока программный продукт является товаром" Несанкционированное копирование осуществляется тогда, когда у пользователя существует потребность в эксплуатации какого-то программного продукта, а затраты на копирование существенно меньше затрат на приобретение легальной копии. Вряд ли в нашей стране найдётся хотя бы сотня разработчиков или людей, использующих ПК в своей деятельности, которые с абсолютной уверенностью могут признаться в том, что никогда в жизни не использовали "пиратские" программные продукты...
Сегодня сложилась парадоксальная ситуация, когда в большинстве отечественных ПК в основном используется «ворованное» программное обеспечение. В Росии 95% используемого софта «пиратское», оставшиеся 5% - FreeWare.
Поэтому вопросы защиты ПО от несанкционированного копирования я вляется важнейшим направлением в обеспечении информационной безопасности.
Все методы защиты можно разделить на программные и аппаратные . К программным относятся методы, реализующиеся чисто софтверным путем, в них не затрагиваются физические характеристики материальных носителей информации, специальное оборудование, например, электронные ключи или смарт-карты. К аппаратным относятся методы, использующие специальное оборудование или физические особенности материальных носителей информации. Основными методами являются:
1) Криптографические методы:
шаг 1: выделение эталонных характеристик среды выполнения ПО;
шаг 2: запись криптографических преобразований эталонных характеристик на диск (c помощью различных алгоритмов шифрования и хеширования - RC5, RC4, MD5);
2) Методы привязки к идентификатору.
Идентификатор - это информация, формируемая инсталятором. Инсталятор формирует уникальный идентификатор, наличие которого потом проверяется инсталированной программой при каждом запуске. При отсутствие или несовпадении идентификатора прога блокирует свое дальнейшее выполнение. Основное требованире к идентификатору заключается в том, что он не должен копироваться стандартным способом. Для этого целесообразно записывать идентификатор в следующей области жеского диска: в отдельные кластеры области данных, в зарезервированные сектора систем области винтчестера.
3) Методы, основанные на работе с переходами и стеком. Реализация этого метода предполагает включение в прогу переходов по динамически изменяемым адресам и прерываниям, а так же использование самогенерируемых команд (полученных с помощью сложения и вычитания). Кроме того вместо перехода jmp может использоваться возврат из подпрограммы ret. Предварительно в стек записывается адрес перехода, который в процессе работы ПО модифицируется непосредственно в стеке.
4) Манипуляция с кодом программы:
a) включение в ПО пустых модулей, на которые имитируется передача управления, но реально никогда не осуществляется. Эти модули содержат большое количество команд не имеющих отношения к логике работы программы;
b) Изменение защищаемой программы таким образом, чтобы стандартный дизассемблер не смог ее правильно дизассемблировать (программа Nota или CopyLock полностью модифицируют заголовок exe-файла).
Приведенные методы направлены на защиту ПО от статического способа снятия защиты от копирования (с использованием дизассемблера).
Методы противодействия динамическим способам снятия защиты ПО от копирования (с использованием отладчика) включают:
1) Периодический подсчет контрольной суммы, занимаемой образом задачи области оперативной памяти, в процессе выполнения;
2) Проверка количества свободной памяти и сравнение с тем объемом, к которому задача привыкла или приучена;
3) Проверка содержимого векторов прерывания (13h и 21h) на наличие тех значений, к которым задача привыкла;
4) Переустановка векторов прерывания. При этом слежение за известными векторами не дает желаемого результата;
При защите ПО от несанкционированного копирования необходимо учитывать следующее ограничение: не потеряет ли программа за время снятия ее защиты своей актуальности.
Более подробно о каждом методе я расскажу в следующих постах.
Читайте так же:

1 коммент.:

Анонимный комментирует...

Спасибо понравилось !