Информационная безопасность


Анализ запутанных программ


В данном разделе мы сопоставим методы запутывания, описанные в разделе 2, и методы анализа программ, рассмотренные в разделе 3. На основании этого сопоставления вводится новая мера устойчивости запутывающих преобразований, а именно.

Метод запутывания Метод распутывания
искажение имён переменных переименование переменных
использование специфических языковых конструкций упрощение специфических языковых конструкций
развёртка цикла визуализация графа потока управления функции для выделения потенциальных кандидатов на свертку в цикл; выявление индуктивной переменной, что требует (интерактивного) сравнения базовых блоков и (интерактивных) эквивалентных преобразований выражений, причём при таких преобразованиях выражение может даже (незначительно) усложняться; свёртка цикла
использование уникальных переменных в базовых блоках продвижение копий (статическое и статистическое), минимизация количества используемых переменных
введение детерминированного диспетчера статистическое восстановление графа потока управления
введение недетерминированного диспетчера сравнение трасс, полученных на одном и том же наборе входных данных
переплетение кода нескольких базовых блоков в один запутанный базовый блок статистическое устранение мёртвого кода
введение непрозрачных предикатов статистический анализ покрытия для выявления потенциальных непрозрачных предикатов, поиск по образцам известных непрозрачных предикатов, алгебраическое упрощение, доказательство теорем
все методы свёртка констант, продвижение констант, продвижение копий, статическое устранение мёртвого кода - могут выполняться после каждого шага распутывающих преобразований

Таблица 1. Методы запутывания программ и методы, которые могут применятся для их анализа.

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




- Начало -  - Назад -  - Вперед -