Записки чайника о StarForce (система защиты от копирования)
Добавлено: 20 сен 2008, 14:23
О чем речь:
О защите от копирования называемой StarForce.
Кто это придумал:
Систему защиты называемую StarForce, представляет Российская компания Protection Technology.
Как работает и из чего состоит:
Для пользователя:
Запускается табличка с надписью StarForce или без оной. Идет обращение к приводу с лицензионным диском. Линейка состояния загрузки начинает заполняться. Затем приложение запускается.
Для программиста:
Любой бинарный модуль приложения кодируется и разбивается на два модуля, один из которых остаток приложения, а второй DLL библиотека, в которую "перенесена" вся функциональность защищаемого модуля. Далее производится штамповка продукта на CD или DVD. По окончании, для дисков данной партии экстрагируются ключи, на основе физической структуры, специфичной для всех носителей данного тиража, поскольку для "штамповки" используются одинаковые материалы, одна матрица и одно оборудование. Это самый простой способ защиты не предусматривающий защиту программного продукта на этапе его проектирования и разработки.
В случае использования StarForce SDK, открывается возможность по произвольному дополнительному шифрованию любой части защищаемого приложения.
Описание защиты:
Система защиты построена на измерении физических характеристик, без нанесения особых меток на носитель. В основе защиты StarForce заложена не привязка к данным, а привязка к физическим характеристикам конкретного носителя. StarForce привязываясь к конкретному диску ничего на него не копирует и никак не помечает, не создает никаких физических меток. По результатам измерений физических параметров диска или партии дисков с однотипными параметрами, генерируется ключ. В защищаемое программное обеспечение внедряется код, анализирующий физические характеристики диска. В случае совпадения параметров, происходит запуск защищаемого приложения. Все остальное - это методы противодействия вскрытию: в частности, маскировка момента проверки физических характеристик и последующей расшифровки фрагментов кода.
Особенности защиты:
Разработчики StarForce применили способ динамического шифрование кода, но не в общем понимании этого слова, а в том, что для этих целей разработана специальная виртуальная машина со своим языком программирования. Этот подход позволяет не просто шифровать блоки кода, а транслировать на другой язык программирования, образуя тем самым виртуальную машину.
Дополнительные возможности:
Защита нескольких загрузочных модулей одного программного приложения.
Защита мультидисковых приложений.
Защита отдельных функций приложений.
Особенности виртуальной машины StarForce:
Способ заключается в том, чтобы не просто шифровать и дешифровать целые фрагменты кода целиком, а делать это покомандно, подобно тому, как действует отладчик или виртуальная машина: взять код, преобразовать в машинный и передать на исполнение, и так пока весь модуль не будет исполнен.
Недостатки виртуальной машины StarForce:
В этом способе кроется недостаток - производительность, ведь на подобное транслирование требуется много времени, и соответственно, на существующем аппаратном обеспечении, способ хорош для защиты только критических участков кода.
Инструменты предоставленные разработчикам игр:
StarForce SDK, при помощи которого разработчики могут шифровать отдельные сегменты своих программ.
Краткий справочник используемых в StarForce способов защиты от копирования.
Побитовое копирование:
Определенным образом запомненные физические характеристики диска, которые не возможно воспроизвести домашним копированием. Диск сам по себе копируется, но при проверке физических характеристик будут получены другие данные.
Эмулирование:
Для того, чтобы защищенному приложению обратиться к CD и проверить его физические характеристики, необходимо воспользоваться одной из функций чтения\записи, которые предоставляет Windows. Существуют наработанные механизмы, позволяющие перехватывать стандартные обращения к функциям Windows и целиком имитирующие чтение, заменяя стандартные вызовы на собственные.
Противодействием служит работа с устройствами записи\чтения на низком уровне, когда невозможно перехватить вызовы к оборудованию. Обращение к накопителю не через стандартные вызовы.
Замечания:
Модуль защиты StarForce блокирует запуск с CD SCSI устройств в момент проверки физической структуры диска при наличии в компьютере CD ATAPI устройств, запуск с CD ATAPI в этом случае возможен. В случае только CD SCSI устройств, запуск не блокируется.
Утилита sfclean.exe убирает из системы StarForce только от версии 3, версии 1\2 при этом не затрагиваются.
StarForce Keyless, записанный на диске ключ считывается и проверяется при запуске приложения без участия пользователя.
Star Force версии 3 устанавливает собственные драйверы, чтобы получить прямой доступ к IDE шине с ATAPI приводами.
Star Force версии 3.3.33 с помощью своих драйверов временно блокирует доступ к Windows файловой системе при доступе к IDE шине во время измерения физических характеристик носителя в ATAPI приводе.
Некоторые физические характеристики компакт дисков:
CD-ROM. Штампованный компакт диск. Информация на компакт-диске представляется в виде последовательности углублений - питов, имеющих вид чёрточек различной длины. Питы расположены вдоль воображаемой спирали, идущей от центра к краю диска. Ширина каждого пита колеблется от 0,6 до 0,8 мкм, а глубина от 0,1 до 0,13 мкм. Расстояние между соседними витками спирали равно 1,6 мкм и должно быть выдержано с точностью до 0,1 мкм.
CD-R. Спиральная канавка у CD-R начинается несколько ближе к центру диска, чем у обычного CD-ROM начинается последовательность питов. На начальном участке, расположены две служебные области: для калибровки мощности лазера перед записью PCA (Power Calibration Area) и для временного хранения таблицы содержания диска PMA (Program Memory Area). На этом участке существует также специальная таблица, в которой содержатся некоторые сведения, характеризующие данный CD-R. Таблица содержит специальную информацию, которая присутствует всегда, и дополнительную информацию, которая может быть на диске, а может и не быть. Специальная информация - это, например, сведения об производителе матрицы, с которой изготовлена основа данного CD-R, сведения о применяемом красителе и оптимальной мощности лазера, код применения (например, для бытовых аудиорекордеров). Дополнительная информация - это, например, максимальная и минимальная скорость записи. Таблица выполнена путем формирования самых настоящих <питов> и <лендов>, как в CD-ROM, т.е. не может быть изменена никаким способом. Но она может быть прочитана.
Запись более 650 МБ данных на диск производится с помощью нарушения стандарта. Разметка (pregroove) на объем более стандартного, производится за счет более тесных витков спирали, расстояние между соседними витками спирали делается менее 1,6 мкм.
В старфорсе самая сильная сторона - это ее виртуальная машина. Это в принципе отдельный интерпретатор, который переводит исходный защищаемой программы в свои команды, понятные только этому интерпретатору. Так называемый пикод. Это все хранится в файле длл. Ну и неплохая функция блокировки файловой системы винды. Остально все ничего интересного из себя не представляет.
Так вот, в последних версиях старфорса возникает громадная аппаратная несовместимость при прохождении айтапи проверки. Виной этому параноидальная мания разработчиков о том, что их защита самая лучшая. Да и желание быть всегда впереди паровоза
О защите от копирования называемой StarForce.
Кто это придумал:
Систему защиты называемую StarForce, представляет Российская компания Protection Technology.
Как работает и из чего состоит:
Для пользователя:
Запускается табличка с надписью StarForce или без оной. Идет обращение к приводу с лицензионным диском. Линейка состояния загрузки начинает заполняться. Затем приложение запускается.
Для программиста:
Любой бинарный модуль приложения кодируется и разбивается на два модуля, один из которых остаток приложения, а второй DLL библиотека, в которую "перенесена" вся функциональность защищаемого модуля. Далее производится штамповка продукта на CD или DVD. По окончании, для дисков данной партии экстрагируются ключи, на основе физической структуры, специфичной для всех носителей данного тиража, поскольку для "штамповки" используются одинаковые материалы, одна матрица и одно оборудование. Это самый простой способ защиты не предусматривающий защиту программного продукта на этапе его проектирования и разработки.
В случае использования StarForce SDK, открывается возможность по произвольному дополнительному шифрованию любой части защищаемого приложения.
Описание защиты:
Система защиты построена на измерении физических характеристик, без нанесения особых меток на носитель. В основе защиты StarForce заложена не привязка к данным, а привязка к физическим характеристикам конкретного носителя. StarForce привязываясь к конкретному диску ничего на него не копирует и никак не помечает, не создает никаких физических меток. По результатам измерений физических параметров диска или партии дисков с однотипными параметрами, генерируется ключ. В защищаемое программное обеспечение внедряется код, анализирующий физические характеристики диска. В случае совпадения параметров, происходит запуск защищаемого приложения. Все остальное - это методы противодействия вскрытию: в частности, маскировка момента проверки физических характеристик и последующей расшифровки фрагментов кода.
Особенности защиты:
Разработчики StarForce применили способ динамического шифрование кода, но не в общем понимании этого слова, а в том, что для этих целей разработана специальная виртуальная машина со своим языком программирования. Этот подход позволяет не просто шифровать блоки кода, а транслировать на другой язык программирования, образуя тем самым виртуальную машину.
Дополнительные возможности:
Защита нескольких загрузочных модулей одного программного приложения.
Защита мультидисковых приложений.
Защита отдельных функций приложений.
Особенности виртуальной машины StarForce:
Способ заключается в том, чтобы не просто шифровать и дешифровать целые фрагменты кода целиком, а делать это покомандно, подобно тому, как действует отладчик или виртуальная машина: взять код, преобразовать в машинный и передать на исполнение, и так пока весь модуль не будет исполнен.
Недостатки виртуальной машины StarForce:
В этом способе кроется недостаток - производительность, ведь на подобное транслирование требуется много времени, и соответственно, на существующем аппаратном обеспечении, способ хорош для защиты только критических участков кода.
Инструменты предоставленные разработчикам игр:
StarForce SDK, при помощи которого разработчики могут шифровать отдельные сегменты своих программ.
Краткий справочник используемых в StarForce способов защиты от копирования.
Побитовое копирование:
Определенным образом запомненные физические характеристики диска, которые не возможно воспроизвести домашним копированием. Диск сам по себе копируется, но при проверке физических характеристик будут получены другие данные.
Эмулирование:
Для того, чтобы защищенному приложению обратиться к CD и проверить его физические характеристики, необходимо воспользоваться одной из функций чтения\записи, которые предоставляет Windows. Существуют наработанные механизмы, позволяющие перехватывать стандартные обращения к функциям Windows и целиком имитирующие чтение, заменяя стандартные вызовы на собственные.
Противодействием служит работа с устройствами записи\чтения на низком уровне, когда невозможно перехватить вызовы к оборудованию. Обращение к накопителю не через стандартные вызовы.
Замечания:
Модуль защиты StarForce блокирует запуск с CD SCSI устройств в момент проверки физической структуры диска при наличии в компьютере CD ATAPI устройств, запуск с CD ATAPI в этом случае возможен. В случае только CD SCSI устройств, запуск не блокируется.
Утилита sfclean.exe убирает из системы StarForce только от версии 3, версии 1\2 при этом не затрагиваются.
StarForce Keyless, записанный на диске ключ считывается и проверяется при запуске приложения без участия пользователя.
Star Force версии 3 устанавливает собственные драйверы, чтобы получить прямой доступ к IDE шине с ATAPI приводами.
Star Force версии 3.3.33 с помощью своих драйверов временно блокирует доступ к Windows файловой системе при доступе к IDE шине во время измерения физических характеристик носителя в ATAPI приводе.
Некоторые физические характеристики компакт дисков:
CD-ROM. Штампованный компакт диск. Информация на компакт-диске представляется в виде последовательности углублений - питов, имеющих вид чёрточек различной длины. Питы расположены вдоль воображаемой спирали, идущей от центра к краю диска. Ширина каждого пита колеблется от 0,6 до 0,8 мкм, а глубина от 0,1 до 0,13 мкм. Расстояние между соседними витками спирали равно 1,6 мкм и должно быть выдержано с точностью до 0,1 мкм.
CD-R. Спиральная канавка у CD-R начинается несколько ближе к центру диска, чем у обычного CD-ROM начинается последовательность питов. На начальном участке, расположены две служебные области: для калибровки мощности лазера перед записью PCA (Power Calibration Area) и для временного хранения таблицы содержания диска PMA (Program Memory Area). На этом участке существует также специальная таблица, в которой содержатся некоторые сведения, характеризующие данный CD-R. Таблица содержит специальную информацию, которая присутствует всегда, и дополнительную информацию, которая может быть на диске, а может и не быть. Специальная информация - это, например, сведения об производителе матрицы, с которой изготовлена основа данного CD-R, сведения о применяемом красителе и оптимальной мощности лазера, код применения (например, для бытовых аудиорекордеров). Дополнительная информация - это, например, максимальная и минимальная скорость записи. Таблица выполнена путем формирования самых настоящих <питов> и <лендов>, как в CD-ROM, т.е. не может быть изменена никаким способом. Но она может быть прочитана.
Запись более 650 МБ данных на диск производится с помощью нарушения стандарта. Разметка (pregroove) на объем более стандартного, производится за счет более тесных витков спирали, расстояние между соседними витками спирали делается менее 1,6 мкм.
В старфорсе самая сильная сторона - это ее виртуальная машина. Это в принципе отдельный интерпретатор, который переводит исходный защищаемой программы в свои команды, понятные только этому интерпретатору. Так называемый пикод. Это все хранится в файле длл. Ну и неплохая функция блокировки файловой системы винды. Остально все ничего интересного из себя не представляет.
Так вот, в последних версиях старфорса возникает громадная аппаратная несовместимость при прохождении айтапи проверки. Виной этому параноидальная мания разработчиков о том, что их защита самая лучшая. Да и желание быть всегда впереди паровоза