Распознавание и именование динамических объектов в программах императивного типа
Автор: Лопатин В.А., Нечай А.А.
Журнал: Экономика и социум @ekonomika-socium
Статья в выпуске: 1-3 (14), 2015 года.
Бесплатный доступ
В статье рассматривается решение специфической проблемы преобразования существующего программного обеспечения с учетом новых требований или условий.
Преобразование кода, декомпиляция, программное обеспечение, семантика, сигнатуры
Короткий адрес: https://sciup.org/140111351
IDR: 140111351
Текст научной статьи Распознавание и именование динамических объектов в программах императивного типа
Для решения специфической проблемы преобразования существующего программного обеспечения (ПО) с учетом новых требований или условий функционирования были созданы соответствующие технологии повторной разработки ПО. В настоящее время наибольшую сложность для повторной разработки представляют системы, написанные на языке ассемблера или системы, для которых исходные тексты программ были утрачены. Для таких систем в течение последних разрабатывались декомпиляторы на языки высокого уровня. В процессе компиляции вся сколь-нибудь осмысленная информация о семантике подпрограмм и данных утрачивается, и получаемые в результате декомпиляции программы хоть и записаны в выражениях языка высокого уровня, для именования элементов используют стандартные имена типа ”ARG_1”, ”Var_312” и т.д. Только для строковых данных возможно построение осмысленных имен по их содержимому, например:
aOsibkaOtkr db ”Ошибка Открытия Файла”, 0
В случае, когда в процессе программирования использовались стандартные средства разработки (компиляторы и библиотеки процедур) возможно именование с использованием сигнатурного подхода: при наличии библиотек по символьным таблицам внешних символов возможно построить сигнатуры для каждой библиотечной процедуры. А в случае совпадения сигнатур в получаемой программе заменить стандартные подпрограммы их именами, а передаваемым в качестве аргументов значениям- присвоить типы. Чтобы автоматизировать процесс именования данных и их элементов предлагается использовать метод, основанный на создании библиотеки шаблонов абстрактных типов данных. Шаблоны представляют собой совокупность описаний инвариантов отношений структуры между элементами данных и набора описаний базовых операций по преобразованию данных структур. Для ”программного” описания шаблонов необходимо использование модифицированной контекстно-зависимой атрибутной грамматики, где одним из атрибутов выступают вышеназванные инварианты.
Атрибутная грамматика распознавания динамических структур данных - это система G = (T, N, W,A,R), где
-
- T - алфавит терминалов;
-
- N - алфавит нетерминалов;
-
- W- множество (возможно бесконечное) атрибутов;
-
- А= {ап, т I ап, т : W n *N m - W} - алфавит преобразователей атрибутов;
-
- R - множество правил вида К[а п,т ( w1( _. , wn;k^ km )] ^p, где
-
- а пт - некоторый преобразователь атрибутов;
-
- К- выводимый данным правилом нетерминал;
-
- р- образец, имеющий определенный вид.
В качестве входных данных для анализа используются подграфы информационного графа программы, в которых на этапе подготовки производится инкапсуляция (объединение) операций с данными.
Названная библиотека шаблонов по всей видимости не может быть универсальной. Это обуславливается следующими факторами:
-
- особенностями предметной области решаемой задачи;
-
- используемой аппаратно-программной платформой;
-
- исходным языком программирования и используемым для обработки транслятором.
При этом можно говорить только об относительной достоверности именования данных и операций над ними, по их подобию с имеющимися шаблонами. Однако, если библиотека шаблонов будет содержать достаточно большое количество как стандартных, так и частных программных решений, требуемая достоверность может быть достигнута. А использование для именования элементов программы осмысленных имен типа ”двусвязный список”, ”добавление элемента”, ”сортировка”, “поиск” и т.д. является несомненно полезным для последующего осмысления и внесения изменений в программную систему.
Список литературы Распознавание и именование динамических объектов в программах императивного типа
- Терехов А.Н., Эрлих Л., Терехов А.А. Перспективы реинжиниринга. Компьютер -Пресс, № 7, 2012.
- Касъянов В.Н. Оптимизирующие преобразования программ. М.: ”Наука”, 2010.
- Лохвицкий, В.А. Подход к построению системы автоматизированной интеграции информации в базу данных для её своевременной актуализации/В.А. Лохвицкий, С.В. Калиниченко, А.А. Нечай//Мир современной науки. Издательство «Перо». Москва. 2014. № 2 (24), С. 8-12.
- Нечай, А.А. Выявление недекларированных возможностей аппаратно-программного обеспечения/А.А. Нечай//Экономика и социум. Саратов. 2014. № 1-2 (10), С. 457-460.
- Нечай А.А. Специфика проявления уязвимостей в автоматизированных системах управления критически важными объектами/А.А. Нечай, П.Е. Котиков//В сборнике: Современные тенденции в образовании и науке, сборник научных трудов по материалам Международной научно-практической конференции: в 14 частях. Тамбов, 2014. С. 96-97.
- Лопатин, В.А. Некоторые обобщения в теории множеств, отношений и графов, их применение в информационных технологиях. /В.А. Лопатин, А.А. Нечай//Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Lopatin%20V1.pdf (дата обращения: 06.02.2015).
- Лопатин, В.А. Структурно-математический подход к анализу гиперсетевых моделей представления знаний /В.А. Лопатин, А.А. Нечай//Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Lopatin%20V2.pdf (дата обращения: 06.02.2015).
- Нечай, А.А. Подходы к выявлению конфиденциальной информации /А.А. Нечай, С.А. Краснов, И.В. Першина//Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Nechay%20A.A.%20Podhody%20k%20vyyavleniyu.pdf (дата обращения: 06.02.2015).
- Нечай, А.А. Специфика проявления уязвимостей программируемых логических интегральных схем, используемых в автоматизированных системах управления критически важными объектами /А.А. Нечай//Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Nechay%20A.A.%20Specifika%20proyavleniya%20uyazvimostyay.pdf (дата обращения: 06.02.2015).