Автоматическая защита Guardant объединяет множество технологий. Одной из наиболее интересных является извлечение (по выбору разработчика) инструкций из кода приложения и трансляция их в код некой виртуальной машины (опция автозащиты /RIP_CODE). Благодаря этому функции приложения получают защиту от анализа, а создание автоматических инструментов взлома автозащиты значительно затрудняется.
При всех положительных качествах, использование технологий, подобных /RIP_CODE, может негативно сказываться на производительности приложения, так как в процессе защиты инструкции подвергаются виртуализации. Кроме того, необходимо учитывать, что не все участки кода могут (и должны) быть защищены с использованием технологий, обладающих такими свойствами.
Поэтому для повышения эффективности защиты необходимо вручную определять набор функций, подлежащих виртуализации. Для этого служит профилирование приложений: с помощью специальных инструментов приложение анализируется и, по результатам анализа, создается конфигурационный файл, содержащий информацию о функциях для защиты. Профилирование призвано разрешить сразу несколько проблем, возникающих при защите программного обеспечения автоматизированными средствами:
- Неопределенность покрытия кода автозащитой — позволяет гарантированно защитить участки кода, представляющие интеллектуальную собственность разработчика;
- Снижение производительности приложения в результате установки автозащиты.
Профайлер позволяет гораздо более эффективно выбирать функции для автозащиты с использованием опции RIP_CODE. В этом уроке рассматривается методика работы с профайлером Guardant при установке автозащиты. Урок входит в курс «Эффективная защита приложений», скачать который можно в разделе «Обучающие материалы».