92
Обфускаторы применяются в ОАО «Аурат» с целью защиты
программного обеспечения и позволяют внести изменения в названия
переменных и классов, изменить недостижимые участки кода при исполнении
программы, добавлять функции, операции, циклы, выполнение которых не
влияет на результаты работы программного обеспечения.
При работе с программным обеспечением они также используют метрики
сложности потока управления, основанные на анализе графов потока
управления. Примерами таких метрик выступают метрика Мак-Кейба, метрика
Хансена, метрика циклической сложности, метрика Маерса.
Оценка работы обфускаторов по различным метрикам показала, что
наибольшую защиту программному обеспечению позволяет обеспечить
обфускатор eazfuskator, показавший наибольшие результаты по метрикам
Джилба, Чепина и Хансена. Поэтому рекомендуем специалистам ОАО «Аурат»
использовать его в большей степени для защиты программного обеспечения.
Было установлено, что для анализа программного обеспечения
специалистами ОАО «Аурат» применяется эмулятор процессов и целых
вычислительных систем QEMU. Он поддерживает работу с различными
процессорами и устройствами и работает в режимах эмуляции системы и
эмуляции приложений.
С использованием программы QEMU специалисты ОАО «Аурат»
реализуют методы оптимизации поиска в кэше оттранслированных блоков,
представленных в виде хэш-таблиц. На первом уровне хэш может производить
обработку не более одного, а в случае блока возникновения коллизий этот блок
вытесняет другой. Если отсутствует необходимый блок на первом уровне, то
осуществляется его поиск на следующем уровне.
В процессе оптимизации специалисты ОАО «Аурат» в каждой точке
программного кода выбирают представителя, позволяющего всем остальным
переменным быть копиями. Если в классе эквивалентности используются
внутренние переменные, которые не соответствуют регистрам эмулированной
системы, то представителем класса выступает одна из переменных. Каждая