ПРИКЛАДНАЯ ИНФОРМАТИКА ¹ 4(22) 2009 Е. О. Деревенец, К. Н. Трошина Структурный анализ в задаче декомпиляции Декомпиляция—одна из сложнейших задач обратной инженерии. <...> Одной из подзадач декомпиляции является задача восстановления управляющих конструкций. <...> В работе подробно рассматриваются методы восстановления управляющих конструкций языка С и восстановление обработки исключительных ситуаций на примере языка С++ . <...> Введение Декомпилятор—этопрограммная система, восстанавливающая программы на языке высокого уровня из программ на языке низкого уровня, из объектного кода или из исполняемых файлов. <...> Декомпиляция требует разработки алгоритмов и методов восстановления информации об исходной программе, которая была утрачена или существенно преобразована в процессе компиляции. <...> Декомпиляция востребована в таких областях информационных технологий, как обеспечение информационной безопасности, поддержка унаследованного кодаит.д. <...> В частности, для программ на языках высокого уровня, таких какCиC++, существуют развитые инструментальные средства поиска ошибок [1], удобной навигации по исходному коду [2] и другие. <...> Для программ в бинарном представлении инструментальныесредства,позволяющиевыполнять анализ их работы, развитыхуже,нежели аналогичные инструменты для программ ЛабораторияИспытаниетехнологий высокого уровня. <...> В частности, для программ на языке ассемблера разрабатывается инструментальное средство [3], которое позволяет анализировать ассемблерную программу на наличие ошибок и уязвимостей, но даже его наличие не обеспечивает возможность решения всех задач анализа низкоуровневых программ с точки зрения информационной безопасности. <...> Таким образом, разработка инструментального средства, позволяющего восстанавливать бинарную программу или программу на языке ассемблера в программу на языке высокого уровня, актуальна. <...> В частности, наличие такого средства позволит анализировать низкоуровневые <...>