Защита программ от нелегального копирования

Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 07:58, курсовая работа

Краткое описание

В соответствии с международным правом труд автора программы приравнен к труду других творцов интеллектуальной собственности, таких как писатели, музыканты, художники, и подлежит защите. Однако в отличие от книги или картины массовое копирование программы не вызывает каких-либо технических трудностей и не требует специального оборудования (если, разумеется, не считать ПК). В отношении программа намного беззащитнее, чем, скульптура или книга. Общий ущерб от нелегального копирования программ по оценкам западных экспертов составляет от 2 до 10 млрд. долларов в год.

Содержание

Введение 3
Раздел I. Программные средства защиты информации 5
Глава 1. Защита информации от несанкционированного доступа 5
1.1 Аппаратные средства защиты информационных систем 6
1.2 Защита программного обеспечения 6
1.2.1 Технические средства защиты 7
1.2.2 Локальная программная защита 7
1.2.3 Сетевая программная защита 7
1.2.4 Защита при помощи компакт дисков 8
1.2.5 Защита при помощи электронных ключей 9
1.2.6 Привязка к параметрам компьютера и активация 11
1.2.7 Защита программ от копирования пуиём переноса их в онлайн 12
1.2.8 Защита кода от анализа 13
1.2.9 Защита программного обеспечения на мобильных платформах 13
1.3 Устаревшие технические средства защиты 13
1.3.1 Ключевая дискета 13
1.3.2 Запись некопируемых меток на жесткий диск 14
1.3.3 Привязка к некоторому физическому объекту 14
1.4 Юридические средства защиты 15
1.5 Организационные средства защиты 15
1.6 Уязвимости современных методов защиты ПО 16
1.7 Использование автоматических средств защиты 18
1.8 Проблема "лучше, чем легальное" 18
1.9 Защищенные носители информации 19
1.9.1 Возможности использования носителей информации 20
1.9.2 Аппаратные средства шифрования 22
1.9.3 Программные методы шифрования 22
Глава 2. Защита от копирования 25
2.1 Организационные меры защиты 26
2.2 Правовые меры защиты 26
2.3 Технические меры защиты 26
2.3.1 Защита аудио треков 26
2.3.2 Защита аудио компакт-дисков 26
2.3.3 Защита программного обеспечения 27
2.4 Методы обхода технических мер защиты от копирования 27
2.5 Проблема "лучше, чем легальное" 28
Глава 3. Защита информации от разрушения 29
Раздел II. Взлом программного обеспечения 30
Глава 1. Взлом 30
1.1 Виды взлома 30
1.2 Принципы взлома 32
Заключение 34
Список использованной литературы и ссылки на сайты 35

Прикрепленные файлы: 1 файл

Курсовая работа 3 курс Даоуд Ф.docx

— 89.26 Кб (Скачать документ)

 

 

 

 

 

 

 

 

 

 

Раздел  II. Взлом программного обеспечения

Глава 1. Взлом

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

Крэк (также искажённое кряк и, крайне редко, крак) (англ. crack) — программа, позволяющая осуществить взлом программного обеспечения. Как правило, крэк пригоден для массового использования. По сути, крэк является воплощением одного из видов взлома, зачастую, это обычный патч. Для слова крэк используются следующие эвфемизмы: лекарство, таблетка, аспирин и т. п.

Крэкер (также искажённое крякер) (англ. cracker) — человек, который занимается созданием крэков. Взломщик — это человек, который взламывает программу при помощи уже готового крэка или без такового.

1.1 Виды взлома

Практически любой взлом сводится к использованию  одного из следующих способов:

  • Ввод серийного номера (регистрационного кода) (жарг. серийник) (англ. serial number, S/n) — взлом программы посредством введения правильного регистрационного ключа (или фразы), полученного нелегальным способом. Ключ может генерироваться на основе какой-либо информации (имени владельца ПО, характеристик аппаратной части компьютера, и т. п.), либо иметь фиксированное значение. Для генерации регистрационного ключа используется тот же алгоритм, что и в программе.

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

Примечание2: Для массового взлома, зачастую, создаётся (и в дальнейшем используется) генератор ключей (жарг. кейген) (англ. keygen сокр. от key generator) — программа для генерации регистрационных ключей (см. выше). Данный вид взлома наиболее востребован (особенно, когда программа часто обновляется или рег. ключ генерируется на основе какой-то информации (см. выше)) и поэтому наиболее ценится. Как правило, требует бо́льшей квалификации взломщика по сравнению с другими видами взлома, но не всегда.

  • Использование загрузчика (жарг. лоадер) (англ. loader) — способ обходить некоторые виды защиты ПО, заключающиеся в использовании внешних (навесных) систем защиты. Состоит в изменении определённых фрагментов программы в оперативной памяти сразу после её загрузки в эту память, но перед её запуском (то есть перед выполнением кода в точке входа).
  • Применение (бинарного) патча (часто жарг. крэк или кряк от англ. crack) (англ. byte patch) — способ, похожий на «загрузчик», но модификация производится статически в файлах программы. Как правило, это один из самых простых и быстрых способов взлома ПО.
  • Использование взломанной версии файла(ов) (англ. cracked) — способ заключается в подмене оригинальных файлов программы файлами, которые уже взломаны.
  • Использование эмулятора ключа (англ. key emulator) — способ используется для обмана защит, построенных на использовании в качестве защиты электронного ключа (как правило, подключаемого к LPT или USB порту компьютера). Заключается в снятии дампа внутренней памяти ключа. Файл с содержимым этой памяти подаётся на вход специальной программе — эмулятору, которая подключает свой драйвер-фильтр в стек драйверов и обманывает защищённую программу, эмулируя работу с аппаратным ключом. В случаях наличия в программе обращений к ключу для аппаратного шифрования участка памяти этот метод используется в связке с методом Бинарный патч. Современные аппаратные ключи настолько сложны, что, при грамотном их применении, возможно создать защиту, фактически не поддающуюся взлому.

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

Этот  список не является исчерпывающим, а  лишь обозначает наиболее встречаемые  способы взлома.

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

1.2 Принципы взлома

Как правило, в основе работы крэкера лежит исследование ассемблерного кода, полученного из машинных инструкций с помощью специально предназначенной для этого программы-дизассемблера. В зависимости от выбранного способа взлома, результат исследования может использоваться, например, для построения генератора ключей или для внесения необходимых изменений в исполняемый файл. Последний способ в большинстве случаев наиболее лёгкий, так как не требует изучения алгоритма проверки правильности ключа: зачастую взлом сводится к поиску проверки нескольких условий (наподобие «ВведённоеЧисло равно ЭталонномуЧислу?») и замене такого условия на безусловный переход (goto, jmp), или, реже, на противоположное (то есть для данного примера на «ВведённоеЧисло не равно ЭталонномуЧислу?»).

Кроме того, внесение изменений в исполняемый  файл (патч) может производиться с целью отключения нежелательных действий со стороны программы (например, напоминание о необходимости регистрации), сокращения функциональности программы. В этих случаях, часто, соответствующие команды процессору заменяются на байты со значением 90h (в шестнадцатеричной системе счисления), что соответствует ассемблерной команде nop (No Operation), то есть «пустой команде», не выполняющей никаких действий. Если таких команд много, то применяется безусловный переход (перепрыгивание ненужного кода). Возможно также расширение возможностей программы написанием дополнительного кода, но, как правило, это слишком трудоёмкий процесс, не оправдывающий временных затрат.

Между тем, патч возможен, как правило, в том случае, когда исполняемый файл программы не защищён специальными «пакерами» и «протекторами» — программами, скрывающими реальный код исполняемого файла. Для последнего типа программ зачастую используется самая интеллектуальная часть обратной разработки (англ. reverse engineering) — исследование кода программы при помощи отладчика и создание генератора ключей, но возможны и другие решения, например, создание загрузчика (см. выше).

 

 

Заключение

Компьютерные  пираты, нелегально тиражируя программное  обеспечение, обесценивают труд программистов, делают разработку программ экономически невыгодным бизнесом. Кроме того, компьютерные пираты нередко предлагают пользователям  недоработанные программы, программы  с ошибками или их демоверсии. Для  того чтобы программное обеспечение  компьютера могло функционировать, оно должно быть установлено (инсталлировано). Программное обеспечение распространяется фирмами-производителями в форме  дистрибутивов на СD-ROM. Каждый дистрибутив имеет свой серийный номер, что препятствует незаконному копированию и установке программ. Для предотвращения нелегального копирования программ и данных, хранящихся на СD-RОМ, может использоваться специальная защита. На СD-ROM может быть размещен закодированный программный ключ, который теряется при копировании и без которого программа не может быть установлена. Защита от нелегального использования программ может быть реализована с помощью аппаратного ключа, который присоединяется обычно к параллельному порту компьютера. Защищаемая программа обращается к параллельному порту и запрашивает секретный код; если аппаратный ключ к компьютеру не присоединен, то защищаемая программа определяет ситуацию нарушения защиты и прекращает свое выполнение.

 

 

 

 

 

 

 

 

 

Список  использованной литературы и ссылки на сайты

 

    1. Фаронов В.В. Турбо Паскаль (в 3-х книгах). Кн.3. Практика программирования. – М.: Учебно-инженерный центр «МВТУ – ФЕСТО ДИДАКТИК», 1993. – 304с.
    2. Микропроцессор «Эльбрус» на сайте МЦСТ
    3. Раздел «Защита программного обеспечения» на CITForum.ru
    4. Портал исследования защиты программ
    5. Software Protector (англ.)
    6. Citforum. Анализ рынка средств защиты от копирования и взлома программных средств
    7. CRACKL@B — Портал исследования защиты программ
    8. Программные и аппаратные ключи HASP
    9. Guardant. Обучающий курс по защите приложений при помощи электронных ключей
    10. WASM. Статьи и переводы статей о низкоуровневом программировании и исследовании программ
    11. Wasm. Защита программ при помощи сетей Петри и взлом
    12. Зайцев О. В. Реализация простого механизма активации в приложении
    13. Starforce. Презентация защиты с привязкой к оптическому диску
    14. ASPA. Презентация защиты для мобильных устройств
    15. Ответственность за использование нелицензионного программного обеспечения.

1 Обзор Alcohol 120 % — эмулятор CD/DVD-дисков, создание их образов

2 Новичков А. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования

3 По данным исследований скорость подбора пароля для архиватора WinZIP 9+ длиной 8 символов (латинские маленькие и большие буквы и цифры) даже с использованием суперкомпьютера составит 31 день (статья Ивана Голубева «О скоростях перебора паролей на CPU и GPU»)

4 Разработчик системы КРИПТОН компания АНКАД

5 По оценке исследователей Алекса Бирюкова и Йохана Гроссшадля из Лаборатории алгоритмики, криптологии и безопасности Университета Люксембурга, для взлома алгоритма AES (часто используется при создании защищенных контейнеров) с длиной ключа 256 байт потребуется более одного триллиона долларов и года

6 Группе исследователей под руководством Брюса Шнайера удалось обнаружить скрытые файлы в рамках шифрованного раздела, созданного с использованием TrueCrypt 5.0 (журнал xakep.ru, 18 июля 2008 г).

 


Информация о работе Защита программ от нелегального копирования