Низкоуровневый анализ машинного кода
Для студентов технических специальностей
Иван Андреевич Трещев
Анастасия Сергеевна Ватолина
Владислав Александрович Сериков

За каждым успешным кодером стоит еще более успешный декодер, который понимает этот код.

Аноним

© Иван Андреевич Трещев, 2025

© Анастасия Сергеевна Ватолина, 2025

© Владислав Александрович Сериков, 2025

ISBN 978-5-0051-9307-0

Создано в интеллектуальной издательской системе Ridero

Введение

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

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

У читателя предполагаются базовые знания в области программирования на assembler для 16,32,64 разрядных архитектур микропроцессоров и умение читать/разрабатывать код на C++/C#, python. Дополнительные материалы доступны по ссылке приведенной в конце книги

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

В заключении приведена ссылка на Яндекс. Диск, где содержатся дополнительная информации доступная для изучения, а так же электронные варианты заданий.

ЛЕКЦИИ

1 Роспатент, основные функции, регистрация программ для эвм
1.1 Правовая основа в России

УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ (в ред. Федерального закона от 07.12.2011 N 420-ФЗ) (см. текст в предыдущей редакции)

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

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

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

Статья 1299. Технические средства защиты авторских прав

1. Техническими средствами защиты авторских прав признаются любые технологии, технические устройства или их компоненты, контролирующие доступ к произведению, предотвращающие либо ограничивающие осуществление действий, которые не разрешены автором или иным правообладателем в отношении произведения.

2. В отношении произведений не допускается:

– Осуществление без разрешения автора или иного правообладателя действий, направленных на то, чтобы устранить ограничения использования произведения, установленные путём применения технических средств защиты авторских прав;

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

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

За указанные нарушения предусмотрена гражданско-правовая (ст. 1301 ГК РФ) и административная (ст. 7.12 КоАП РФ) ответственность. Отмечается, что закон (часть четвёртая ГК РФ) обладает невысоким техническим уровнем и допускает неоднозначные трактовки. В частности, в том же Гражданском Кодексе (ч. IV, ст. 1280, п. 1) сказано:

Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:

– Внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;

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

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

2 Защита ПО

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

– Одноразовый платеж. За ваше ПО платят раз, после чего могут пользоваться неограниченное время;

– Функциональные ограничения. Дополнительные возможности пользователь может открыть за дополнительную плату;

– Временная лицензия. Вы «сдаете приложение в аренду», то есть речь идет о подписке;

– Многоуровневая. Представляет собой комбинацию названных методов. Пользователь получает Silver-, Gold- или Platinum-версию ПО при соответствующей оплате.

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

Еще раз подчеркнем важность выбора адекватной защиты. Если вы собираетесь защитить свой велосипед методом, который применяется в Форт-Ноксе, это вряд ли можно назвать разумным. Есть и обратная зависимость: если хотите защитить Форт-Нокс, не используйте для этого велосипедный замок, это бесполезно, взлом гарантирован. В целом, стратегия лицензирования должна соответствовать цене самого продукта.

2.1 Виды защиты

Как и говорилось выше, есть различные опции для защиты ПО от взлома и копирования. Они могут отличаться по стоимости, уровню защиты и специализации.

Защита по «доверию». Здесь вы рассчитываете на то, что пользователи будут платить без всяких проблем. Один пользователь – одна лицензия, вечная. В принципе, затрат с вашей стороны практически нет. Как только приложение скомпилировано, его можно начать распространять. Но проблема в том, что если ваш продукт станет популярным, то кто-то точно его взломает, начав раздавать. Защиты от взлома в таком случае нет, она нулевая.

– Офлайн-программная защита. Речь идет о защите без подключения к интернету. Обычно реализуется такая схема сразу после компиляции программы. Чаще всего используется программная оболочка с определенными настройками. Защищенная программа не подключается для проверки целостности ни к каким внешним серверам. В принципе, обойти такую защиту можно без всяких проблем.

– Онлайн-программная защита. Здесь уже речь идет о более серьезном методе – проверке лицензии при помощи сервера лицензирования. В этом случае требуются относительно высокие затраты в начале и периодические расходы позже. Как и в предыдущем варианте, используется программная оболочка, но параметры лицензирования проверяются и настраиваются в онлайне. При желании можно добавить опции проверки ПО, например есть лицензия или нет. Если требуется постоянное подключение к сети, то продукт, скорее всего, будет работать не всегда и не везде. Степень серьезности такой защиты – между средним и высоким уровнем.

– Аппаратная защита. Один из наиболее надежных методов, который сочетает в себе преимущества всех прочих стратегий. За лицензирование отвечает электронный USB-ключ, которому не требуется подключение к сети. Цена каждого ключа для разработчика низкая, нет периодических дополнительных трат. Реализовать можно как при помощи API, так и посредством программной оболочки. Достоинством такого метода является то, что лицензию можно убрать за пределы операционной системы, ключ хранится вне ПК. Ключ либо очень сложно, либо вообще невозможно скопировать. ПО, которое защищено при помощи аппаратного ключа, может использоваться на тех системах, где нет подключения к сети. Это, к примеру, правительственные объекты или промышленность. Еще один плюс в том, что электронному ключу не требуются различные решения для разных программных сред, а возможности лицензирования очень гибкие. Решения на основе аппаратного ключа можно развернуть буквально за минуты, они поддерживаются практически любыми версиями операционных систем. Правда, помните, что поставщик решения, в случае если вы не можете создать аппаратный ключ самостоятельно, должен делать все быстро, чтобы не возникла необходимость ожидать партии ключей и, соответственно, переноса старта продаж. Также поставщик должен предоставить простое и эффективное решение, которое быстро разворачивается.

2.2 Удобство пользователя

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

– Офлайн-программная защита. Этот вид является наиболее удобным и приемлемым пользователями поскольку, в отличии от остальных видов, он уверен, что после покупки ему н6е придется задумываться о регулярном подтверждении подлинности купленного им продукта, за редкими исключениями.

– Онлайн-программная защита. Этот вид является менее предпочтительным пользователями поскольку несет в себе неудобство постоянного или периодического, как это часто бывает «в неудобное время» для пользователя, подключения к интернету. Однако этот метод может быть незаметным для пользователя и соответственно не вызывать негативных эмоций, в том случает если ПО по своей сути требует постоянного взаимодействия с интернетом.

– Аппаратная защита. Этот тип является наиболее неудобным для пользователя поскольку при каждом запуске пользователю приходится физически при помощи ключа подтверждать подлинность ПО и все становится еще хуже при утере физического ключа.

Поскольку процесс встраивания защиты зачастую связан с некоторыми трудностями соответственно и о защите ПО стоит задуматься еще на стадии проектирования: после того как проект готов частично или полностью, изменить что-то будет непросто.

3 Геометрия диска

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

Жесткие диски представляют собой несколько пластин с магнитным покрытием, расположенных на одной оси и вращающихся с большой скоростью. Считывание/запись информации осуществляется с помощью головок диска, расположенных одна под другой между пластинами и перемещающихся от центра к краям пластин. Окружность на магнитной пластине, которую описывает головка при вращении пластин, называется дорожкой, а совокупность таких дорожек, расположенных одна под другой (определяемая каждым фиксированным положением головок), называется цилиндром. Каждая дорожка разбита на сектора, и в сектор можно записать 512 байт полезной информации. Поэтому диски часто характеризуются совокупностью трех цифр:

– Числом цилиндров/

– Числом дорожек в цилиндре/

– Числом секторов на дорожке

C/H/S (от первых букв соответствующих английских терминов: Cylinder/Head/Sector, т. е. цилиндр/головка/сектор). Эти три цифры называют «геометрией диска». Диск с геометрией C/H/S имеет объем C*H*S*512 байт.

Диски являются блочными устройствами, т. е. считывание и запись информации производится блоками, и минимальный размер блока равен одному сектору (512 байт). Для того чтобы записать информацию на диск, надо «позиционировать головку», т. е. указать контроллеру, в какой сектор эту информацию записать. Сектора как раз адресуются путем указания номера цилиндра, номера считывающей головки (или дорожки) и порядкового номера сектора на дорожке.

4 Технические средства защиты от копирования

DRM или же технические средства защиты авторских прав – это программные или программно-аппаратные средства, которые намеренно ограничивают, либо затрудняют различные действия (копирование, модификация, просмотр) с данными в электронной форме или позволяют отследить эти действия

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

Одновременный доступ к воспроизведению и запрет на копирование – чрезвычайно сложная задача:

– воспроизведение – чтение информации ее обработка и запись на устройство вывода,

– копирование – чтение и запись информации на устройство хранения.

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

4.1 Звук и музыкальные произведения

Audio-CD

Первые методы защиты музыкальных компакт-дисков от копирования использовали нарушения стандарта записи Audio CD, которые не были заметны для большинства CD-проигрывателей, но не работали на более сложно устроенных компьютерных приводах CD-ROM. Компания Philips отказалась ставить на таких дисках знак Compact Disc Digital Audio, который доказывал соответствие стандарту. К тому же оказалось, что такие диски не могли прочитать некоторые плееры, и, наоборот, некоторые компьютеры уверенно их копировали.

В 2005 году Sony BMG стала использовать новую технологию DRM для защиты своих аудио-CD от копирования при прослушивании на персональном компьютере. Диск можно было воспроизводить на компьютере только с помощью специальной программы, записанной на нём; также можно было создать 3 резервных копии альбома. Помимо этого, на компьютер пользователя устанавливалась программное обеспечение, предотвращающее перехват аудиопотока во время воспроизведения. Устанавливалось это ПО без подтверждения пользователя. Устанавливаемое ПО содержало в себе руткит: оно скрывало файлы и каталоги, использовало вводящие в заблуждение названия процессов и сервисов, и не имело возможности удаления. Это создавало серьёзные уязвимости в безопасности системы пользователя. Поскольку программа представляла угрозу безопасности компьютера, Sony была вынуждена отозвать миллионы компакт-дисков. Позднее была обнаружена троянская программа, использующая уязвимость в DRM компании Sony. В результате подобного использования DRM на Sony было подано несколько коллективных судебных исков, которые, в большинстве своём, были разрешены путём выплаты финансовой компенсации пострадавшим потребителям, а также раздачей музыкальных альбомов в цифровом виде без DRM. При всех этих проблемах DRM от Sony слабо осуществляло свою основную цель – защиту от копирования, так как влияло лишь на проигрывание на компьютерах под управлением систем Microsoft Windows, оставляя «за бортом» другие устройства. Да и Windows-систему легко можно было обойти, например, банально выключив функцию автозапуска, не говоря уже об упомянутой аналоговой бреши.

В январе 2007 года EMI прекратили выпуск аудио-CD с DRM, объявив о нецелесообразности затрат на систему. Sony, после всех судов и проблем, также отказались от DRM-защиты. На данный момент ни один из четырёх крупнейших лейблов не поддерживает DRM.

Музыка в интернет

Многие интернет-магазины США, продающие музыку онлайн, используют DRM. Один из крупнейших – Apple iTunes Store – использовал систему DRM FairPlay вплоть до 2009 года. Система использует обычные аудиофайлы формата MP4. Каждый файл содержит звуковой поток в формате AAC, зашифрованный с помощью AES с использованием основного ключа, а также сам основной ключ, зашифрованный с помощью ключа пользователя. Ключи пользователя генерируются случайно для каждого сеанса, их копии хранятся на серверах Apple и в защищенном репозитории iTunes (клиентской программы, используемой для доступа к iTunes Store). Один и тот же аккаунт iTunes Store можно использовать не более чем на пяти компьютерах. iTunes позволяет копировать аудиофайл на неограниченное количество плееров iPod (при этом ключи пользователя также копируются во внутренний репозиторий плеера), однако на одном iPod можно использовать музыку, полученную не более чем из пяти различных аккаунтов. Apple не выдавала лицензии на собственный DRM сторонним компаниям, в результате чего только устройства от Apple, а также их медиа-проигрыватель QuickTime могли воспроизводить музыку из iTunes. iTunes также позволяет записывать аудиофайлы на компакт-диски. Один и тот же плей-лист можно записать не более семи раз, однако каждый отдельный файл можно записывать неограниченное число раз. Полученные аудио-CD не содержат DRM, поэтому несложно получить аудиофайлы без защиты, сделав копию компакт-диска, однако при этом качество звука может уменьшиться при перекодировании. Программа Requiem позволяет извлекать ключи пользователей из хранилища iTunes, однако Apple регулярно выпускает обновления, меняя способы хранения ключей.

Однако 6 февраля 2007 г. глава Apple Стив Джобс опубликовал открытое письмо «Мысли о музыке», в котором призвал звукозаписывающие компании продавать музыку без DRM. С начала 2009 года музыка в iTunes Store по соглашению с большинством издателей постепенно стала полностью доступна без DRM.

В России, несмотря на вступление в силу IV части Гражданского кодекса, многие музыкальные интернет-магазины до сих пор действуют полулегально, поэтому ни о каких средствах DRM говорить не приходится. Не говоря уже об использовании музыки в социальных сетях, столь популярных в России и странах СНГ.

Помимо стандартных подходов к DRM, некоторые магазины предлагают DRM-схему подписки. Например, сервис Sony Music Unlimited или онлайн музыкальный магазин Napster. Пользователи могут скачивать и прослушивать неограниченное количество музыки до тех пор, пока действует подписка. Однако с окончанием подписки все файлы перестают воспроизводиться.

В связи с тем, что схемы DRM у различных производителей отличаются между собой, иногда становится невозможным проигрывать музыку от разных производителей на одном устройстве, устройство может просто не поддерживаться DRM-схемой. Решением подобных проблем занимаются, например, в Англии.

Так, в 2006 году Эндрю Гауэрс составил список предложений по улучшению политики защиты авторских прав Gowers Review of Intellectual Property, которая содержит 54 пункта. Этот список находится в открытом доступе, и ознакомиться с ним может любой желающий. Среди всех прочих поправок пункты с 8 по 12 содержат предложения по созданию некоторых исключений для добросовестного использования авторских прав, например, библиотеками, также рассматривается возможность перехода от одной схемы DRM к другой. Впоследствии планировалось ввести подобные исключения и для обычных пользователей. Вообще проблема с различными DRM в проигрывателях стояла достаточно остро, например, Apple отказались от DRM-защиты в музыке полностью, благодаря чему музыка из iTunes проигрывается спокойно на любом устройстве, поддерживающем формат AAC. Некоторые магазины, например, немецкий Musicload, также объявили об отказе от DRM, так как выяснилось, что 3 из 4 звонков в их службу поддержки поступало от недовольных системой DRM пользователей.

Рингтоны для мобильных телефонов

Открытый Мобильный Альянс создал специальный стандарт для взаимодействия различных DRM-схем на мобильных устройствах. Изначально данная схема DRM содержала простой язык управления правами и широко использовалась для защиты рингтонов для мобильных телефонов. Данная схема запрещала копировать рингтоны с мобильных телефонов на другие устройства, например ПК. Широкого использования эта схема DRM так и не получила, несмотря на то, что язык был основательно расширен и улучшен.

4.2 Изображения, фильмы и телевиденье

Content Scramble System

Первой технологией защиты DVD от копирования являлась Content Scramble System (CSS). Эта технология использовалась с 1996 года. Каждый производитель лицензировал свой ключ DVD-проигрывателя для использования в своих устройствах у DVD Copy Control Association – организации, основанной DVD Forum. Каждый DVD, защищенный CSS, содержал ключ диска, который расшифровывался с помощью ключа данного DVD-проигрывателя, после чего можно было расшифровать всю остальную информацию на диске. Ключи записывались в lead-in области диска, чтобы сделать невозможным их непосредственное копирование. В 1999 году Джон Лех Йохансен, также известный как DVD Jon, опубликовал программу DeCSS, позволявшую расшифровывать и воспроизводить DVD-диски, защищенные CSS, в операционной системе Linux, для которой ключи проигрывателей не были лицензированы. Он использовал ключи, переданные анонимным хакером, который извлек их из программы XingDVD, хранившей ключи в открытом виде. Позже была найдена уязвимость, которая позволяла взломать защиту методом полного перебора на любом компьютере, мощность которого достаточна для воспроизведения DVD. В этом же году на системах Microsoft Windows появилась своя схема DRM, которая считывала инструкции из мультимедийных файлов на языке управления правами, в которых описывались разрешённые пользователю действия. Язык может определять, сколько раз можно проигрывать файл, можно ли записать его на внешний носитель, распечатать, переслать по интернету или скопировать на жёсткий диск.

Regional Protection Code

Regional Protection Code или региональная защита DVD является средством DRM, позволяющим регулировать продажу DVD, HD DVD и Blu-Ray дисков в различных странах мира. Система призвана решить проблему распространения дисков в странах, где премьера фильма ещё не закончилась и он ещё не вышел на DVD. Однако данная технология позволяет также устанавливать разные цены для розничной продажи дисков в разных странах, что противоречит правилам свободной торговли. Подобный подход позволяет продавать продукцию с DRM-защитой в развивающихся странах, а также странах третьего мира по более низким ценам. Однако в Австралии и Новой Зеландии запрещена продажа DVD-проигрывателей, ограничивающих воспроизведение дисков в каких-либо регионах из-за противоречий, указанных выше.

Advanced Access Content System

Advanced Access Content System (AACS) или же улучшенная система доступа к содержимому – это система DRM, используемая для защиты HD DVD и Blu-ray дисков, опубликованная в апреле 2005 г. и окончательно принятая 5 июня 2009 года консорциумом AACS Licensing Administrator, включающим Disney, Intel, Microsoft, Panasonic, Warner Bros., IBM, Toshiba и Sony. Система сочетает в себе различные методы, предотвращающие незаконное копирование и распространение видеоматериалов.

Система использует более стойкое по сравнению с CSS шифрование AES, а также использует схему широковещательного шифрования на основе дерева разностей подстановок. Последняя использует фиксированный набор ключей носителей, необходимых для расшифрования содержимого диска, и наборы ключей устройств, лицензируемые производителями проигрывателей. Ключи носителей хранятся на диске в специальным образом зашифрованном виде так, что каждый конкретный ключ устройства не может расшифровать все возможные ключи носителей. Это позволяет отзывать скомпрометированные ключи, например, извлеченные посредством отладки из программных плееров, используя в новых выпускаемых дисках только те ключи носителей, которые могут быть расшифрованы только не скомпрометированными ключами. Непосредственное же копирование диска невозможно, поскольку в шифровании участвует уникальный серийный номер, который может записать только завод-изготовитель.

Рисунок 1 – Схема крипто защиты AACS

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

Признак ограничения изображения позволяет ограничить максимальное разрешение для аналоговых выходов до 960×540. Полное разрешение 1920×1080 возможно только для выходов HDMI или DVI, которые поддерживают HDCP.

Функция контролируемого копирования, недавно включенная в стандарт AACS, позволяет создавать резервные копии на Blu-ray и DVD-дисках, в виде файлов, совместимых с DRM компании Microsoft, а также делать копии более низкого качества для портативных видеоплееров. Технология доступна только в сравнительно новых видеопроигрывателях и требует подключения к Интернет для учёта количества копий данного диска.

В настоящее время AACS взломана не полностью. В декабре 2006 года хакеры опубликовали в Интернете ключи к защищённому с помощью AACS содержимому HD DVD. После того, как были аннулированы взломанные ключи, постоянно публиковались новые. 16 апреля 2007 ключи плееров WinDVD и PowerDVD были отозваны, поскольку они ранее были опубликованы в Интернете, а соответствующие программы обновлены, однако вскоре в Сети появились новые, до сих пор действующие ключи. Также был произведен аппаратный взлом привода HD DVD, используемого с Xbox 360, для частичного обхода защиты, позволяющего осуществить взлом без использования ключей устройств.

Предотвращение перехвата аудио- и видеопотока.

Интерфейсы DVI и HDMI поддерживают технологию High-bandwidth Digital Content Protection (HDCP) – защита широкополосного цифрового содержимого, которая использует шифрование при передаче сигнала между видеопроигрывателем и монитором/телевизором для предотвращения перехвата видеопотока (например man-in-the-middle), а также позволяет осуществлять вывод только на сертифицированные устройства. Однако оказалось, что эта технология обладает низкой криптостойкостью и может быть взломана.

Компания Microsoft включила в свою операционную систему Windows Vista технологию Protected Media Path, позволяющую шифровать информацию, передаваемую видеокарте или монитору, а также запрещать воспроизведение, если запущены программы без цифровой подписи.

Телевизионные программы

Для защиты телепрограмм, передаваемых по телевидению высокой чёткости, предусматривается наличие флага передачи, позволяющего определить, разрешена ли запись. Эта концепция была разработана компанией Fox Broadcasting в 2001 году и была поддержана MPAA и Федеральным Агентством по связи (ФАС) США. Однако в мае 2005 года Апелляционный Суд США постановил, что ФАС не обладает достаточной властью для наложения подобных ограничений на телеиндустрию в США.

Куда большего успеха эта система добилась, когда была принята Проектом Цифрового Видео Вещания – консорциумом, включающим более 250 вещателей, производителей, операторов сети, разработчиков программного обеспечения и управляющих органов в более чем 35 странах. Этот консорциум пытался разработать новые цифровые стандарты для DRM в телевещании. Одним из наиболее перспективных стандартов является вариант с улучшенным флагом передачи, разработанный для европейского телевидения DVB-Content Protection and Copy Management (DVB-CPCM). Этот стандарт был предоставлен на рассмотрение европейским правительствам в 2007 году. Все нормативные части на данный момент уже одобрены для публикации Руководящим Советом DVB и будут опубликованы ETSI как официальный европейский стандарт ETSI TS 102 825-X (X – номер подразделения). На сегодняшний день ещё никто не взял на себя обеспечения Совместимости и Надёжности для данного стандарта, однако разработки в данном направлении ведутся многими компаниями, что не позволяет сегодня внедрить эту систему повсеместно.

В США поставщиками кабельного телевидения используется стандарт CableCard, ограничивающий доступ пользователя только теми услугами, на которые он подписан.

4.3 Текст, документы и электронные книги

Управление цифровыми правами на предприятии – это применение технологий DRM для управления доступом к корпоративным документам (файлы Microsoft Word, PDF, AutoCAD, электронные письма, страницы внутренней сети интранет). Эти технологии, более известные как Управление Информационными Правами, в основном используются для предотвращения несанкционированного использования документов, являющихся интеллектуальной собственностью предприятия, например, в целях промышленного шпионажа или случайной утечки информации. Обычно эта система встроена в программное обеспечение системы управления содержимым, однако некоторые корпорации такие как Samsung Electronics разрабатывают свои собственные системы DRM.

Электронные книги, предназначенные для чтения на ПК, мобильных устройствах или в специальных приложениях, обычно используют DRM с целью ограничить копирование, печать или выкладывание книг в общий доступ. Обычно такие книги ограничены количеством устройств, на которых их можно прочесть, а некоторые издатели вообще запрещают любое копирование или печать. Некоторые компании и обозреватели считают, что наличие DRM создаёт множество проблем для издания книг.

На сегодняшний день в мире наибольшее распространение получили пять основных форматов электронных книг: Mobipocket, KF8, Topaz, ePub и PDF. Также существует четыре основных DRM-схемы для электронных книг, по одной от Amazon, Adobe, Apple и Martin Trust Management Organization (MTMO):

– DRM от Amazon является адаптацией изначальной кодировки Mobipocket, и используется в электронных книгах от Amazon, которые поддерживаются программой Amazon Kindle, форматы Mobipocket, KF8 и Topaz.

– DRM Adept от корпорации Adobe применяется к ePub и PDF, причём читать книги могут различные программы от сторонних разработчиков, а не только программное обеспечение от Adobe. Формат Adobe PDF поддерживает различные методы защиты содержимого: Полное криптостойкое шифрование документа, требующее ввод пароля для любых операций с документом, включая открытие и просмотр; защита документа, определяющая, возможно ли копирование, извлечение текста, печать или изменение документа. Хотя стандарт ISO требует, чтобы все программы просмотра PDF следовали установленным ограничениям, например, Okular имеет опцию, которая позволяет игнорировать ограничения в просматриваемых файлах; Adobe DRM – технология защиты, используемая в Adobe Reader версии 6.0 и выше. Используется в различных книжных интернет-магазинах, поддерживает привязку возможности просмотра к компьютеру пользователя или другому устройству (например, КПК или электронной книге), позволяет ограниченное количество раз копировать документ с одного устройства на другое авторизованное в Adobe Content Server, позволяет запретить извлечение текста и печать документа, а также ограничить срок, в течение которого возможен доступ к документу.

– DRM FairPlay от Apple Inc. Она применяется к формату ePub, причём прочитать такие файлы могут только устройства Apple с помощью приложения iBook.

– DRM Marlin была создана и поддерживается в открытой отраслевой группе Marlin Developer Community (MDC), основанной компаниями Intertrust, Panasonic, Philips, Samsung и Sony. Эта схема лицензирована MTMO.

Популярный в России открытый формат электронных книг FictionBook не поддерживает DRM.

4.4 Видео игры

DRM в компьютерных играх используется для различных целей, но в целом все схемы направлены на защиту от копирования и распространения пиратских копий игр. Зачастую при запуске таких игр необходимо вставить диск с игрой в оптический привод, при этом проверяются низкоуровневые особенности лицензионных CD и DVD-дисков, которые невозможно воспроизвести при копировании в домашних условиях. Также подобные системы DRM часто устанавливают в систему драйвер для защиты от эмуляторов дисководов, а иногда требуют регистрации через Интернет.

Игровые приставки, такие, как Xbox 360, Xbox One, PlayStation 3 и Playstation 4, также содержат систему проверки диска на лицензионность.

Активация для ограничения количества установок

В некоторых компьютерных играх DRM-защита используется для ограничения числа систем, на которых можно устанавливать данное ПО. Для контроля используется онлайн-аутентификация на серверах издателя. Большинство таких DRM-схем позволяют произвести от 3 до 5 установок, однако некоторые позволяют отменить активацию посредством деинсталляции. Подобные схемы вызывают много критики, так как ограничивают пользователей от законного использования приобретённых продуктов, например, если у пользователя дома более 5 компьютеров, он не может установить приобретённую продукцию на все машины.

Примерно с середины 2008 года выпуск игры Mass Effect запустил целую волну продуктов, использующих DRM-схему SecuROM, которая требует онлайн-аутентификации на серверах издателя. В этом же году использование подобной защиты в игре Spore от Electronic Arts привело к тому, что большинство пользователей предпочло использование пиратской версии игры. Однако независимые исследователи с TweakGuides пришли к выводу, что подобное использование DRM не влияет на количество пиратских копий игры, отметив, что другие игры вроде Call of Duty 4: Modern Warfare, Assassin’s Creed и Crysis, использующие схему SafeDisc, не прибегающую к онлайн-аутентификации, также распространялись в сравнимых со Spore количествах среди пиратов. К тому же игры, использующие онлайн-аутентификацию так же, как и Spore – BioShock, Crysis и тот же Mass Effect, в списках самых скачиваемых игр на различных торрент-трекерах не значатся.

Постоянная онлайн-аутентификация

Многие издатели, среди которых, например, Electronic Arts, Ubisoft, Valve и Atari, использовали онлайн DRM-схемы вплоть до начала 2009 года. В конце 2008 года компания Ubisoft провела эксперимент, выпустив серию игр Prince of Persia без DRM-защиты на вебсайте GOG.com, с целью проверить, насколько правдиво общественное мнение в отношении того, что DRM только усугубляет пиратство и провоцирует людей использовать не лицензионные копии. Хоть сама компания так и не объявила результаты эксперимента, независимые эксперты с Tweakguides заметили, что всего лишь с двух торрентов на Mininova игру скачало более 23 тысяч людей в течение 24 часов после релиза.

Ubisoft официально объявили о возвращении онлайн-аутентификации 9 февраля 2010 года. Они представили свою новую онлайн игровую платформу Uplay, которую начали использовать в таких играх, как Silent Hunter 5, The Settlers 7 и Assassin’s Creed II. Silent Hunter 5 взломали в течение 24 часов с момента релиза. Однако, пользователи пиратской версии могли играть только в начальные уровни игры. Система Uplay работает таким образом, что на пользовательский ПК игра устанавливается не полностью, а докачивает содержимое с игровых серверов Ubisoft по мере прохождения игры. Чуть более, чем через месяц после релиза на ПК, в первую неделю апреля, было выпущено ПО, с помощью которого можно было обойти DRM-защиту в Assassin’s Creed II. ПО являло собой эмулятор сервера Ubisoft для игры. Чуть позже, в этом же месяце, была выпущена версия, которая убирала необходимость в соединении с серверами полностью.

В начале марта 2010 года сервера Ubisoft подверглись масштабной DDoS-атаке, что привело к закрытию доступа к играм для ~5% игроков. В качестве компенсации за принесённые неудобства, компания предоставила пострадавшим пользователям по бесплатной скачиваемой игре. С марта 2010 года сервера Ubisoft больше не падали.

Примеру Ubisoft последовали и другие разработчики, такие, как Blizzard Entertainment. Они также перешли на вариант защиты, когда большая часть игровой логики находится «на стороне», или обрабатывается серверами создателя игры. Blizzard использует подобный подход в своей игре Diablo III. Electronic Arts использовали такой подход в своей перезагрузке сериала SimCity. Надо сказать, что подобный подход отрицательно повлиял на обе компании, ибо они просто не смогли справиться с количеством игроков на серверах, что привело к многочисленным жалобам и растущему недовольству пользователей. Electronic Arts пытается убрать необходимость постоянного подключения к серверам, но пока это не представляется возможным, ибо вся игра была создана с учётом этого.

Вмешательство в ПО

Некоторые студии в качестве защиты используют не совсем стандартные подходы. Bohemia Interactive использует DRM-схему, которая при запуске нелегальной копии игры просто мешает играть, начиная с 2001 года, с выходом Operation Flashpoint: Cold War Crisis. Игра начинает создавать ситуации, в которых у игроков снижается точность оружия, или, например, сами игроки превращаются в птиц. Компания Croteam в своей игре Serious Sam 3: BFE использовала похожий подход, натравливая на игроков, использующих нелегальные копии игры, монстра, которого невозможно было убить.

5 Общий анализ средств защиты ПО от копирования

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

Методы защиты софта от нелегального копирования развивались и эволюционировали последние 30 лет. В эпоху, когда не было Интернета, сканеры и ксероксы являлись экзотической редкостью, а операционные системы были однозадачными, производители компьютерных игр привязывали свой софт к поставляемому с ним печатному мануалу. В какие-то моменты использования программы требовалось найти что-то в руководстве пользователя.

Когда этот метод потерял актуальность, стали использоваться более продвинутые технические методы (например, ключевые дискеты). Использовались искусственно созданные сбойные секторы дискет, нестандартное форматирование и «плавающие» биты. И хотя некоторые производители (например, российская компания Abbyy) использовали этот метод защиты вплоть до недавнего времени, на смену им пришли новые технологии.

Недорогой софт, выпускаемый в промышленных масштабах (особенно компьютерные игры), проще всего защищать, привязывая к носителю (CD- или DVD-дискам). Там используются, по сути, те же методы, которыми раньше защищали дискеты: нестандартное форматирование, сбойные секторы на диске, специально закодированный таким образом ключ. В качестве дополнительной меры защиты в системе может устанавливаться специальный защищенный драйвер, призванный бороться с различными эмуляторами. Этот метод защиты сравнительно дешев и подходит для широко тиражируемых продуктов. К ограничениям можно отнести не самую высокую степень защиты и неудобство, вызванное привязкой к физическому носителю. Самые известные системы защиты по такой технологии: SecuROM, StarForce, SafeDisk, Tages.

5.1 Электронные ключи

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

Отдельной строкой идут электронные ключи с возможностью загрузки внутрь произвольного пользовательского кода. Если при разработке приложения хотя бы часть уникальных алгоритмов приложения перенести в такой ключ, а оставшуюся «снаружи» часть приложения заставить постоянно общаться с ключом с помощью асимметричной криптографии (например, в ключ периодически посылаются произвольные данные для выполнения электронно-цифровой подписи), то можно выстраивать защиту с гарантированной взломостойкостью.

5.2 Интернет-активация

Неудобство распространения физических носителей и электронных ключей, а также развитие Интернета и цифровой дистрибуции привели к взрывному росту популярности различных методов онлайн-защиты.

Компания Microsoft с 1999 г. начала применять интернет-активацию в большинстве своих продуктов, и вот уже более 10 лет сотни миллионов копий ее программного обеспечения успешно защищаются таким образом. Суть защиты состоит в том, что приложение вычисляет параметры оборудования, на которое оно установлено (серийные номера материнской платы, процессора и т.д.), в зашифрованном виде пересылает их на сервер активации и после получения ключа приложение начинает работать в полную силу, но оказывается привязанным к «железу», куда оно установлено.

Преимуществ у онлайн-за-щиты множество. Например, отсутствие физических носителей, что означает как отсутствие проблем с пересылкой электронных ключей и дисков, так и невозможность их механических поломок. Также можно отметить относительную дешевизну внедрения и поддержки этого метода защиты и, конечно, возможность широкой цифровой дистрибуции и «мгновенной» покупки ПО из любой точки Земли.

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

5.3 Обфускация кода

Несмотря на то что ассемблер современных процессоров не так прост для понимания, как высокоуровневый С-код, опытный взломщик с большой долей вероятности сможет при наличии времени и сил воспроизвести любые алгоритмы в приложении, включая и те, что обеспечивают защиту от копирования. И если где-то существует заблуждение, что сама по себе компиляция в машинный код – это уже хорошая защита, то в современном мире это не так, не говоря уже о том, что множество технологий не предусматривает компиляции в машинный код, а анализировать байт-код или промежуточное представление куда легче (например,.NET, Java или ActionScript).

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.