Button Up
StarForce C++ Obfuscator

StarForce C++ Obfuscator

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


Обфускация исходных кодов

StarForce C++ Obfuscator рекомендуется для защиты программного обеспечения (ПО), к которому предъявляются повышенные требования по взломостойкости, например, защита ключей DRM или других данных, потеря которых может негативно отразиться как на доходах разработчика ПО, так и прибыли компании-заказчика данного ПО.

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

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

Другим преимуществом StarForce C++ Obfuscator является его универсальность: данный продукт может применяться для защиты программ, создаваемых для любых операционных систем и любых процессоров, в том числе для защиты программно-аппаратных прошивок (firmware).

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

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

  • преобразование кода С++ в код виртуальной машины;
  • шифрование строк и массивов;
  • преобразование кода в цифровой автомат;
  • введение ложных связей;
  • объединение участков кода.
оддержка любых операционных систем Поддержка любых операционных систем: Windows, Mac, Linux, iOS, Android.
Отдельное приложение Отдельное приложение, которое устанавливается на стороне заказчика.
Различные модели лицензирования Различные модели лицензирования (с ограничением и без ограничения по времени использования).

Защита от потери ключей

Защита от потери ключей при использовании
стандартных DRM

Описание ситуации

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

Решение

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


Защита от анализа и модификации

Защита от анализа и модификации ПО
на приборах учета (счетчиках)

Описание ситуации

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

Решение

StarForce C++ Obfuscator позволяет существенно увеличить сложность реверс-инжиниринга ПО приборов учета, и, тем самым, снизить вероятность подделки данных.


Защита от взлома

Защита от взлома системы условного доступа спутникового и кабельного телевидения

Описание ситуации

Система условного доступа (Conditional Access System, CAS) используется в операторской деятельности. Она позволяет контролировать доступ к телевизионным каналам следующим образом: контент распространяется в зашифрованном виде, и только пользователи, оплатившие доступ, получают ключ для расшифровки, осуществляемой на абонентском устройстве - приставке. Злоумышленник, получивший доступ к ПО приставки путём реверс-инжиниринга может извлечь ключ и, либо создать эмулятор карты (при использовании карточной CAS), либо собрать пиратскую прошивку приставки, содержащую ключ (при получении ключа напрямую от оператора). Эмулированную карту и прошивку можно выложить в интернет для массового распространения.

Решение

StarForce C++ Obfuscator позволяет надежно защитить от анализа и модификации программно-аппаратные прошивки (firmware), используемые для телевизионных приставок и декодеров, что приводит к значительному сокращению количества пиратских подключений к сервисам спутниковых и кабельных операторов.


Защита клиентской части системы

Защита клиентской части системы
стандартной DRM


Описание ситуации

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

Решение

StarForce C++ Obfuscator позволяет снизить риск взлома DRM благодаря существенному увеличению сложности анализа. Детали использования обфускатора (т. е. что и как нужно обфусцировать) сильно зависят от системы. Для оптимального решения проблемы рекомендуется консультация технических специалистов StarForce.


Защита собственной DRM

Защита собственной DRM
от анализа


Описание ситуации

Разработка собственной DRM – затратная задача. Если разработчик идёт на это, ему в любом случае необходимо решить задачу защиты от анализа кода DRM, работающего на стороне конечного пользователя. При этом разработчик получает 2 проблемы:

  1. Существенные трудозатраты на создание эффективной защиты от анализа.

  2. Риск получения недостаточной эффективности защиты от анализа.

Решение

StarForce C++ Obfuscator позволяет сэкономить время на разработку системы защиты DRM от анализа. При его использовании также обеспечивается высокий и известный заранее уровень эффективности. Оценка уровня эффективности производится разработчиком при принятии решения о приобретении обфускатора на основе анализа результатов обфускации.

StarForce C++ Obfuscator представляет собой stand-alone приложение, защищённое от копирования с помощью продукта StarForce ProActive for Business. На вход обфускатор принимает незащищённые CPP-файлы, в которых с помощью специальных атрибутов помечены функции, требующие защиту от анализа. На выход обфускатор также выдаёт CPP-файлы, но в них соответствующие функции уже обфусцированы.

Использование продукта состоит из следующих шагов:

  1. Установить StarForce C++ Obfuscator на компьютере разработчика.

  2. Активировать продукт. Для этого необходимо запустить исполняемый файл omniform.exe и в появившемся окне ввести серийный номер.

  3. Произвести тестовую обфускацию. Для этого нужно:

    1. Создать файл test_input.cpp со следующим содержимым:

      __attribute__((obfuscate(0))) int f1( int a, int b )
      {
            if( a > b ) return a;
            else return b;
      }
    2. Запустить обфускатор командой obfrun.exe test_input.cpp test_output.cpp.

    3. Убедиться, что файл test_output.cpp содержит обфусцированный код.

  4. Подготовить исходные файлы к обфускации, расставив перед нужными функциями атрибут obfuscate.

  5. Настроить обфускатор на работу с нужным компилятором, отредактировав конфигурационные файлы. Подробности описаны в руководстве пользователя.

  6. Произвести обфускацию с помощью команды obfrun.exe.

  7. Скомпилировать обфусцированные файлы.

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

Для более удобного использования обфускатора используйте возможность интеграции его в процесс сборки приложения.


Обфускатор может работать на следующих операционных системах:

  • Windows Server 2003 32/64-bit
  • Windows Vista 32/64-bit
  • Windows Server 2008 32/64-bit
  • Windows 7 32/64-bit
  • Windows 8 32/64-bit
  • Windows Server 2012 32/64-bit
  • Windows 10 32/64-bit
  • Linux (опция)

Обфускатор требует для работы:

  • 350 Mb дискового пространства для установки
  • 4 Гб RAM

Обфускатор имеет следующие параметры совместимости с С++:

  • Поддерживаемые компиляторы:

    • Microsoft Visual C++ 6.0
    • GCC 3
    • GCC 4
    • Поддержка других компиляторов, совместимых с ANSI C++
  • Поддерживаемые целевые платформы для C++:

    • Windows (32/64 bit x86)
    • Linux (32/64 bit x86)
    • Android (32-bit ARM, 32-bit x86)
    • Mac
    • iOS
  • Не поддерживается обфускация следующих языковых конструкций:

    • Функции, содержащие Structured Exception Handling (SEH)
    • Конструкторы и деструкторы
    • Шаблоны (template) функций и методы шаблонных классов (template classes)
    • Некоторые другие конструкции, используемые реже перечисленных. Полный список ограничений содержится в руководстве пользователя