Preview

Труды Института системного программирования РАН

Расширенный поиск

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

Аннотация

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

Об авторах

Ш. Ф. Курмангалеев
ИСП РАН
Россия


К. Ю. Долгорукова
ИСП РАН
Россия


В. В. Савченко
ИСП РАН
Россия


А. Р. Нурмухаметов
ИСП РАН
Россия


Р. А. Матевосян
ИСП РАН
Россия


В. П. Корчагин
ИСП РАН
Россия


Список литературы

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

2. Труды Института Системного программирования РАН [электронный ресурс] http://www.citforum.ru/security/articles/analysis/, свободный.-Загл с экрана.

3. Reverse Compilation Techniques By Cristina Cifuentes [электронный ресурс] http://www.itee.uq.edu.au/~cristina/dcc/decompilation_thesis.ps.gz, свободный.-Загл с экрана.

4. Ахо А., Лам М., Сети Р., Ульман Д.Компиляторы. Принципы, технологии, инструментарий, 2-изд.: Пер с англ.- М.: ООО «И.Д. Вильямс», 2008. – 1184с. : ил.

5. LLVM Language Reference Manual [электронный ресурс] http://LLVM.org/docs/LangRef.html, свободный.-Загл с экрана.

6. Using Code Normalization for Fighting Self-Mutating Malware Danilo Bruschi, Lorenzo Martignoni, Mattia Monga [электронный ресурс] http://idea.sec.dico.unimi.it/~lorenzo/rt0806.pdf, свободный.-Загл с экрана.

7. John R Flex & bison. 1st edition, 304p. Levine Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. ISBN: 978-0-596-15597-1

8. Библиотека BOOST C++ [электронный ресурс] http://www.solarix.ru/for_developers/cpp/boost/boost-library.shtml, свободный.-Загл с экрана.

9. Сик, Ли, Ламсдэйн, C++ Boost Graph Library. Библиотека программиста / Пер. с английского Сузи Р. – СПб.: Питер,2006.- 304с. ил. ISBN 5-469-00352-3.

10. Using Graphviz as a library [электронный ресурс] http://www.graphviz.org/pdf/libguide.pdf, свободный.-Загл с экрана.


Рецензия

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


Курмангалеев Ш.Ф., Долгорукова К.Ю., Савченко В.В., Нурмухаметов А.Р., Матевосян Р.А., Корчагин В.П. О методах деобфускации программ. Труды Института системного программирования РАН. 2013;24.

For citation:


Kurmangaleev Sh.F., Dolgorukova K.Y., Savchenko V.V., Nurmukhametov A.R., Matevosyan H.A., Korchagin V.P. Software deobfuscation methods: analysis and implementation. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2013;24. (In Russ.)



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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