Сборники трудов ИСП РАН


О методах деобфускации программ.

Ш.Ф. Курмангалеев, К.Ю. Долгорукова, В.В. Савченко, А.Р. Нурмухаметов, Р.А. Матевосян, В.П. Корчагин.

Аннотация

Целью работы является разработка программного обеспечения, проводящего деобфусцирующие преобразования. Основная область применения – это анализ запутанного кода вредоносного программного обеспечения. Потребность в подобного рода продуктах возникла в связи с ростом популярности методик запутывания кода для сокрытия алгоритмов работы. Основным инструментом аналитика является дизассемблер, осуществляющий преобразование бинарного кода в читаемый человеком текст, но не проводящий его верификацию и упрощение. Ранее для «чистки» запутанного кода хватало удаления бесполезного кода по шаблонам, но применяемые методики запутывания усложняются, и для распутывания требуются средства, использующие более прогрессивные методы анализа и упрощения кода. В связи со схожестью проблем, стоящих перед оптимизирующим компилятором и деобфускатором, было опробовано использование компиляторной инфраструктуры LLVM в качестве ядра деобфускатора. Основным различием является то, что оптимизатор компилятора работает в условиях полного знания о программе, в то время как деобфускатор обладает неполной информацией, извлеченной непосредственно из участка анализируемого кода. По результатам испытаний, в связи с высокой зашумленностью выходного кода, было принято решение разработать свою инфраструктуру, которая позволяет добиться более чистого выходного кода. Тем не менее, применение LLVM или аналогичной разработки остается одним из перспективных направлений при разработке деобфусцирующего программного обеспечения.

Ключевые слова

анализ бинарного кода, деобфускация, обфускация, LLVM

Издание

Труды Института системного программирования РАН, том 24, 2013, стр. 145-160.

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

DOI: 10.15514/ISPRAS-2013-24-8

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