ОБФУСКАЦИЯ
Задача защиты разработанного ПО от нежелательного изучения и анализа алгоритмов актуальна, в первую очередь, для разработчиков программно-аппаратных комплексов, поставляемых на экспорт или на широкий внутренний рынок. На настоящий момент не известны методы, обеспечивающие абсолютную защиту программ от несанкционированного анализа (обратного инжиниринга), и вместо этого для защиты используются методы, позволяющие максимально усложнить анализ защищенных программ, делая его нерентабельным.
Общепринятым подходом является «запутывание» (обфускация) программного кода, полностью сохраняющего алгоритмы его работы, но значительно усложняющее анализ.
Специалистами ООО "СОФТКОМ" разработан оригинальный метод запутывания на уровне машинного кода, увеличивающий трудоемкость его анализа (обратного инжиниринга) в сотни раз. Метод может применяться для защиты программ, разработанных на языках C и C++ с использованием компиляторов семейства Clang и gcc для целевых архитектур процессоров MIPS64, x64 и ARM. Набор поддерживаемых целевых архитектур постоянно расширяется.
Валентин Оносовский
CEO компании "Софтком"
ВНЕДРЕНИЕ
Технология защиты включает в себя как использование стандартных приемов обфускации (изменение структуры потока управления, включение «мёртвого» кода, раскрытие циклов, шифрование, и т.д.), так и ряд оригинальных техник, повышающих степень защищенности обрабатываемой программы.
✔️ Для управления процессом защиты (какие участки программы защищать сильнее, какие – слабее, какие – вовсе не защищать), используется задаваемая пользователем карта обфускации, представляющая собой «раскраску» исходного кода программы в соответствии с требуемыми уровнями защиты.
✔️ Система защиты включает в себя механизмы и инструменты автоматизированного контроля (валидации) корректности работы защищенной программы. Они позволяют убедиться в идентичности результатов работы исходной и защищенной версий программ на различных наборах тестов.
✔️ Защита программ посредством «запутывания» кода не является бесплатной и влечет за собой определенные издержки по быстродействию и требованиям к объему используемой памяти. Для защищенной программы быстродействие может незначительно снизиться (менее чем на 10%), а требования к используемой памяти – вырасти в 1,5-2 раза.

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