по
Кибернетика и программирование
12+
Меню журнала
> Архив номеров > Рубрики > О журнале > Авторы > О журнале > Требования к статьям > Редакция и редакционный совет > Порядок рецензирования статей > Политика издания > Ретракция статей > Этические принципы > Политика открытого доступа > Оплата за публикации в открытом доступе > Online First Pre-Publication > Политика авторских прав и лицензий > Политика цифрового хранения публикации > Политика идентификации статей > Политика проверки на плагиат
Журналы индексируются
Реквизиты журнала

ГЛАВНАЯ > Вернуться к содержанию
Статьи автора Велижанин Анатолий Сергеевич
Кибернетика и программирование, 2019-2
Ревнивых А.В., Велижанин А.С. - Методика автоматизированного формирования структуры дизассемблированного листинга c. 1-16

DOI:
10.25136/2644-5522.2019.2.28272

Аннотация: Предмет исследования – методика разбиения дизассемблированного кода на логические блоки в автоматическом режиме, поиск уязвимостей программного обеспечения без использования исходного кода (с использованием бинарного файла либо его эквивалента, полученного реверс-инжинирингом). Объектом исследования являются существующие анализаторы кода и особенности их функционала. Целью исследования является рассмотреть возможность разбиения дизассемблированного кода на логические блоки в автоматическом режиме и некоторые связанные с этим возможные сложности. Постановка проблемы. Сложность анализа больших программных продуктов на уровне машинного кода обуславливает необходимость автоматизации данного процесса. Методология исследования основана на сочетании теоретического и эмпирического подходов с применением методов статического и динамического анализа, сравнения, обобщения, алгоритмизации, моделировании, синтеза. Ключевые выводы. Разбиение кода на блоки путем последовательного в режиме «строчка за строчкой» анализа машинного кода в некоторых случаях может привести к неверной интерпретации. Кроме того, анализ кода согласно выводам функций так же не гарантирует правильности определения границ функций. Однако в целом матричный метод может быть применен для анализа зависимостей функций по выделенным таким образом блокам кода. Научная новизна связана с определением автором перспективных векторов исследования программного кода на уязвимости, обоснованием подхода (построение матрицы переходов из целочисленных значений), который может являться начальной стадией подготовки к автоматизированному анализу дизассемблированного кода.
Кибернетика и программирование, 2019-1
Ревнивых А.В., Велижанин А.С. - Исследование дизассемблированного представления исполняемых файлов, сформированных различными компиляторами. Пример уязвимости на переполнение буфера c. 1-17

DOI:
10.25136/2644-5522.2019.1.28238

Аннотация: Предметом исследования является потенциальная уязвимость, в частности на переполнение буфера, в различном программном обеспечении, связанная с функцией стандартной библиотеки языка программирования С/С++ strcpy и подходы и методы поиска таковой уязвимости. Объектом исследования выступают данные машинного кода компиляторов при выполнении сборки программы в различных режимах. Целью исследования является провести анализ некоторых особенностей машинного кода, генерируемого различными компиляторами для Windows и Linux в режимах Debug и Release, в том числе, проведя на основе этого обзор уязвимости переполнения буфера. Методы исследования. В работе рассматриваются и развиваются методы построения алгоритмов поиска уязвимости переполнения буфера, исследуются характеристики данной уязвимости на уровне машинного кода. Для этого используются компиляторы Visual C++, Intel C++, g++, а также отладчики WinDBG, GDB. Ключевые выводы. Сборка программ в различных режимах приводит к формированию различий в исполняемом коде, который сделан из полностью одного и того же кода языка программирования высокого уровня; эти различия проявляются в отличиях в поведении программы. В ходе исследования программного обеспечения в поисках уязвимостей важно проводить анализ машинного кода с целью выявления скрытых закономерностей. Новизна исследования заключается в выявлении отличий в машинном коде, полученном после сборки одинакового высокоуровневого кода, определении «штампов» компиляторов при выполнении сборки программы в различных режимах. Особым вкладом автора в исследование темы является развитие методов построения алгоритмов поиска уязвимости переполнения буфера.
Другие сайты издательства:
Официальный сайт издательства NotaBene / Aurora Group s.r.o.