ИКРБС
№ 222070600034-0Отчёт "Исследование и разработка программной инфраструктуры для анализа бинарного кода, настраиваемой по целевой процессорной архитектуре" по проекту РФФИ 18-07-01256 (итоговый).
14.01.2021
Целью проекта является создание универсальной инфраструктуры анализа бинарного кода, которая может применяться в качестве базового компонента в широком спектре инструментов анализа и при этом обеспечивать независимость таких инструментов от целевой процессорной архитектуры анализируемого бинарного кода за счет декодирования машинных команд и их трансляции в машинно-независимое промежуточное представление. В рамках проекта выполнено исследование особенностей современных процессорных архитектур и проведен обзор существующих подходов к моделированию операционной семантики процессорных команд. Разработано и реализовано в виде программного компонента промежуточное представление, позволяющее более точно описывать такого рода модели, в особенности в части выборки команд (слоты задержки, аппаратная поддержка циклов и т.п.), доступа к памяти и системных команд. Трансляция машинных команд в данное промежуточное представление управляется внешними спецификациями на разработанном в ходе проекта предметно-ориентированном языке и включает в себя компонент для декодирования машинных команд, основанный на автомате с магазинной памятью. Реализованы и отлажены частичные спецификации для процессорных архитектур x86, RISC-V, MIPS, PowerPC и др. Инфраструктура позволяет строить промежуточное представление как по бинарному образу исследуемых программ, так и по заранее записанным трассам выполнения. Дальнейший анализ проводится в терминах математического аппарата абстрактной интерпретации: инфраструктура содержит компоненты как для интерпретации отдельных путей в программе, так и для поиска неподвижной точки в задаче статического анализа. Для проведения анализа пользователю инфраструктуры достаточно задать абстрактный домен, передаточные функции и начальное состояние; определение порядка применения передаточных функций и построение вспомогательных структур данных (например, графа потока управления) инфраструктура выполнит автоматически. В состав инфраструктуры включены наиболее универсальные виды интерпретации: конкретная, символьная и смешанная (concolic). Работоспособность системы проверена в ряде экспериментов, где применялось смешанное выполнение для автоматического определения входных данных программ, приводящих их в заданные состояния. Были получены корректные решения, а производительность разработанной в рамках проекта инфраструктуры оказалась сравнима со специализированными системами символьного выполнения, не основанными на внешних спецификациях.
ГРНТИ
50.41.17 Системное программное обеспечение
Ключевые слова
анализ бинарного кода
абстрактная интерпретация
динамический анализ
символьное выполнение
статический анализ.
компиляторные технологии
обратная инженерия ПО.
Детали
Заказчик
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ "РОССИЙСКИЙ ФОНД ФУНДАМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ"
Исполнитель
Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук
Бюджет
Средства фондов поддержки научной и (или) научно-технической деятельности: 700 000 ₽
Похожие документы
Отчёт «Исследование и разработка программной инфраструктуры для анализа бинарного кода, настраиваемой по целевой процессорной архитектуре» по проекту РФФИ 18-07-01256 (промежуточный).
0.983
ИКРБС
ОТЧЕТ «Исследование и разработка программной инфраструктуры для анализа бинарного кода, настраиваемой по целевой процессорной архитектуре» по проекту РФФИ 18-07-01256 (промежуточный отчёт 2 периода).
0.980
ИКРБС
Исследование и разработка программной инфраструктуры для анализа бинарного кода, настраиваемой по целевой процессорной архитектуре. Проект РФФИ 18-07-01256.
0.939
НИОКТР
Исследование и разработка программной инфраструктуры для анализа бинарного кода, настраиваемой по целевой процессорной архитектуре. Проект РФФИ 18-07-01256.
0.939
НИОКТР
Разработка методов статического анализа бинарного кода для поиска ошибок в программах Проект РФФИ 18-07-01154.
0.909
НИОКТР
Разработка методов статического анализа бинарного кода для поиска ошибок в программах Проект РФФИ 18-07-01154.
0.908
НИОКТР
Отчёт "Разработка методов статического анализа бинарного кода для поиска ошибок в программах" по проекту РФФИ 18-07-01154 (заключительный). Этап 3.
0.905
ИКРБС
Отчёт «Исследование и разработка методов направленного динамического анализа программ» по проекту РФФИ 17-07-00702 (итоговый).
0.899
ИКРБС
Исследование и разработка методов инструментирования программного кода в виртуальных машинах
0.898
НИОКТР
«Разработка методов статического анализа бинарного кода для поиска ошибок в программах» по проекту РФФИ 18-07-01154 (промежуточный отчёт 1 периода).
0.894
ИКРБС