Анализ запутывающих преобразований программ.


Анализ запутывающих преобразований программ.

А.В. Чернов.

Аннотация

Запутанной (obfuscated) называется программа, которая на всех допустимых для исходной программы входных данных выдаёт тот же самый результат, что и оригинальная программа, но более трудна для анализа, понимания и модификации. Запутанная программа получается в результате применения к исходной незапутанной программе запутывающих преобразований (obfuscating transformations). Данная работа посвящена анализу запутывающих преобразований графа потока управления программы (функции), опубликованных в открытой печати, с точки зрения их устойчивости к различным видам анализа программы. В данной работе запутывание изучается на уровне языка Си, то есть исходная программа написана на языке Си, и целевая запутанная программа генерируется также на языке Си. В работе приведена классификация запутывающих преобразований с точки зрения методов анализа программ, которые могут быть использованы для их распутывания. Показано, что для каждого класса рассмотренных запутывающих преобразований существуют методы анализа, которые позволяют эффективно противодействовать таким преобразованиям. Для иллюстрации этого приведены несколько практических примеров распутывания программ, запутанных как вручную, так и автоматическими запутывателями.

Издание

Труды Института системного программирования РАН, том 3, 2002, стр. 7-38.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

Для цитирования

А.В. Чернов. Анализ запутывающих преобразований программ.. Труды Института системного программирования РАН, том 3, 2002, стр. 7-38. .

Полный текст статьи в формате pdf Вернуться к содержанию тома