по
Кибернетика и программирование
12+
Меню журнала
> Архив номеров > Рубрики > О журнале > Авторы > О журнале > Требования к статьям > Редакция и редакционный совет > Порядок рецензирования статей > Рецензирование за 24 часа – как это возможно? > Политика издания > Ретракция статей > Этические принципы > Политика открытого доступа > Оплата за публикации в открытом доступе > Публикация за 72 часа: что это? > Политика авторских прав и лицензий > Политика цифрового хранения публикации > Политика идентификации статей > Политика проверки на плагиат
Журналы индексируются
Реквизиты журнала

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

DOI:
10.25136/2306-4196.2019.1.28238

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

DOI:
10.25136/2306-4196.2018.6.28288

Аннотация: Предметом исследования являются алгоритмы оптимизации автоматизированного поиска зависимостей на дизассемблированном коде. Объектом исследования выступают зависимые блоки кода на х64 архитектуре процессоров производства корпорации «Intel» и листинги, полученные в результате реверс-инжиниринга программного обеспечения компиляторами с различными настройками в Windows и Linux.Цель исследования. Целью исследования является рассмотреть возможность использования математических матриц для построения карты машинного кода, а также сделать обзор возможных проблем для автоматического анализа, совершить поиск путей следования информационных потоков. Методы исследования. В работе использовался компилятор Visual C++. Рассматривается архитектура, в которой передача информации может быть осуществлена способами: регистр-память, память-регистр, регистр-регистр. Для анализа был избран метод формирования списка функций, вызываемых до исследуемого потенциально опасного блока кода, сформированный для каждого рассматриваемого пути к исследуемому блоку. Описываются и развиваются методы реализации матричного подхода. Новизна и ключевые выводы. Метод математических матриц может быть использован для построения карты машинного кода. Однако для определения путей достижимости отдельных блоков кода может потребоваться значительное количество ресурсов. Кроме того, машинный код может быть подвергнут воздействию упаковщиков и обфускаторов, что так же вносит дополнительные сложности. Был выделен ряд потенциально опасных функций стандартной библиотеки языка программирования С/С++.
Другие сайты издательства:
Официальный сайт издательства NotaBene / Aurora Group s.r.o.
Сайт исторического журнала "History Illustrated"