Распознавание и именование динамических объектов в программах императивного типа

Автор: Лопатин В.А., Нечай А.А.

Журнал: Экономика и социум @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).
Еще
Статья научная