![](https://habrastorage.org/webt/4t/nl/ho/4tnlhotgnjer2fnhatwctutskpm.png)
Часто можно услышать, что пиратское ПО является причиной сбоев в работе компьютера, утечек данных и т. п. В этой статье разберёмся, через какие этапы прошла борьба пиратов и разработчиков, к чему это привело, и опасно ли устанавливать нелицензионное ПО сейчас.
Давайте представим: у нас есть программа, которую мы разработали и хотим на этом заработать. Мы разместили её на оптических накопителях, выпускаем определённым тиражом и продаём. Но тут находится Паша, который взял диск с вашим ПО у Пети, скопировал себе на компьютер и пользуется им, не заплатив вам. Более того, появляется Дима, который копирует программу своим друзьям. Ну и в довершение всего находится Вася, который покупает болванки, записывает на них вашу программу и продаёт по цене ниже, чем продаёте вы, а всю прибыль забирает себе.
▍ Ключи активации
Тут до вас доходят сведения об этом, и вы задумываетесь, как бы препятствовать такому копированию. После недолгих раздумий вы решаете, что для использования программы нужно ввести ключ, который уникален для каждой копии и распространяется вместе с носителем. Но это мало помогает, потому что это хоть и введёт в некий ступор пользователя, получившего копию программы, которая просит ввести ключ, но ничто не мешает использовать один и тот же ключ много раз. В довершение Вася придумывает генератор ключей, который выдаёт ключи, принимаемые вашей программой. И такие генераторы носят банальное и очевидное, но гордое наименование keygen.
![](https://habrastorage.org/webt/zm/8c/br/zm8cbrn5l352ddc3zbivogbamni.jpeg)
Теперь на сцене появляется злоумышленник Саша. Интернет уже появился и открывает новые возможности обмена информацией. Саша размещает под видом копий вашей программы, кейгенов и архивов с ключами или вместе с ними вредоносное программное обеспечение. Ну и заодно создаёт фишинговые страницы, с помощью которых собирает информацию в обмен на желание получить заветный «серийник» и т. п.
▍ Электронные ключи на физических носителях
Тем временем реальные серийные номера и кейгены всё распространяются. Что же делать? И здесь вам приходит в голову новая идея: электронные ключи на физическом носителе. Если такой аппаратный ключ не вставлен в порт компьютера или не соответствует программе, она не может продолжить работу. На какое-то время это помогает, однако Вася научился путям обхода, создавая эмуляторы таких устройств. Ваша программа воспринимает такое виртуальное устройство как аппаратный ключ, физически присутствующий на компьютере.
▍ Наличие диска в приводе
Для игр был распространён следующий метод защиты: при запуске они требовали наличия диска в приводе. Чтобы затруднить копирование, на оптический носитель записывалась особым образом служебная информация, которая при прямом копировании не считывалась с диска. И здесь Вася научился считывать служебную информацию с диска и записывать её на болванки. Защита всё усложняется, но Вася тоже не дремлет, и каждый раз снова и снова обходит её. В конце концов Вася и вовсе придумывает эмулятор привода, и теперь наличие физического диска вовсе не обязательно. Достаточно установить этот эмулятор и смонтировать файл образа диска со всем содержимым диска, включая служебную информацию. Игра воспринимает эту конструкцию как физический носитель, вставленный в физический привод, и продолжает работать. Но и это ещё не всё. Вася понимает, что для успешного запуска программы образ не обязательно должен вмещать всё содержимое диска, достаточно лишь служебной информации. И такой мини-образ называется NoCD или NoDVD. Позднее это название закрепляется за модифицированными файлами. Пользователю достаточно заменить ими оригинальные файлы, и программа теперь не просит вставить диск. Саша подхватывает и эту тему, и теперь строит свои козни под видом распространения NoCD.
▍ Онлайн- и офлайн-проверка ключа на подлинность
Популярность интернета всё растёт, и распространение пиратских Васиных копий приобретает колоссальные масштабы. Но вместе с тем всемирная сеть приносит пользу и вам, ведь теперь вы можете проверять ключ на подлинность онлайн. Если ключ действительно вами выдавался, программа успешно активируется. В случае, если такого ключа вы не выдавали (например, он был сгенерирован), программа больше не принимает его. Также если с одним и тем же ключом производилось несколько попыток активации, вы блокировали ключ, и активировать программу с помощью данного ключа было теперь нельзя. Остаётся только одна проблема: отсутствие подключения к интернету, т. к. доступность данной технологии хоть и быстро растёт, но всё ещё остаётся достаточно низкой. Здесь рождается способ решения. Вы добавляете в вашу программу способ оффлайн-активации. При его использовании программа создаёт специальный код запроса и просит ввести код ответа, который можно получить на вашем сайте с компьютера, на котором выход в сеть есть. Соответственно, на вашем сайте вы создали специальный сервис, который генерирует код ответа при вводе кода запроса. В довершение вы создаёте телефонного бота, который принимает от абонента код, введённый с помощью кнопок на телефоне, и диктует код ответа. Решение гениальное, но и ослабляющее защиту. Вася придумывает генератор, создающий корректный код ответа. В случае, если создать генератор не удаётся, пользователю также предлагается заменить оригинальные файлы модифицированными.
![](https://habrastorage.org/webt/5w/l2/dq/5wl2dq5q7-muqj1r05ypsix42ag.png)
▍ Проверка статуса ключа на сервере
Тут интернет начинает иметь очень большую зону охвата, и вы решаете, что ваша программа будет периодически связываться с вашим сервером активации и проверять статус ключа. Но и Вася не промах: он снабжает копии инструкциями, а зачастую и скриптами, блокирующими любые подключения к вашим серверам активации с компьютера пользователя. Саша продолжает свою деятельность, только теперь его поделки мимикрируют под торрент-файлы и проникают в раздачи.
![](https://habrastorage.org/webt/c7/gf/6b/c7gf6bn1tw-9xws0z2nuq7nxwem.png)
В довершение всего появляется Даша, которая продаёт задёшево ключи активации Windows и Office под видом «подлинных», которые были выданы по ошибке, или ключи многоразовой активации. Такой ключ может оказаться для человека, купившего его, одноразовым, и служит только для того, чтобы программа перестала просить активацию.
![](https://habrastorage.org/webt/8l/di/bk/8ldibknar5rls5ktubly-soo07o.png)
А сейчас подробнее рассмотрим конкретный пример, когда ПО «отучено просить активацию» с помощью модификации оригинальных файлов. Многие хорошо помнят «слетающую» после установки обновлений активацию и «синие экраны смерти» на «пиратских» Windows. Почему это происходило? Одно время были очень распространены активаторы, подменяющие/модифицирующие загрузчик Windows и прочие системные файлы. При обновлении Windows эти файлы могли быть заменены новыми, если обновление касалось этих файлов. Как итог — «слетала» активация, а иногда операционная система утрачивала работоспособность, т. к. модифицированные файлы теряли совместимость с обновлёнными. На этой почве появляются рекомендации отключить обновления операционной системы, что приводило к уязвимости ОС и проблемам в работе, т. к. вновь появляющиеся приложения и драйверы ориентированы на актуальные версии системных файлов.
![](https://habrastorage.org/webt/9o/gk/6r/9ogk6rg8brle872bbk_oigxpmx4.png)
▍ Что не так с пиратскими копиями ПО
Теперь давайте подытожим и найдём ответы на главные вопросы.
- Отличается ли «пиратское» ПО от подлинного?
Нет: В случае использования метода активации, не затрагивающего оригинальные файлы.
В случае использования бесплатной полнофункциональной версии в нарушение лицензии.
Да: В случае применения «патчей», замены оригинальных файлов.
- Опасно ли использовать «пиратское» ПО?
Нет: При использовании способа активации, не затрагивающего оригинальные файлы.
Да: Можно попасться на «фишинг».
Можно получить вредоносное ПО вместе или вместо желаемого.
Можно получить сбои в работе, простой, потерю данных и т. п. в случае использования модифицированного ПО.
Пол-лимона подарков от RUVDS. Отвечай на вопросы и получай призы ?
![](https://habrastorage.org/webt/_p/_h/lv/_p_hlvd2tv0cv9tny8tdytzfhje.png)