Верхнее

IRIDA

IRIDA — инструментальный комплекс (ИК) для проведения статического и динамического анализа потоков управления в исполняемых кодах программ.

Описание

В состав инструментального комплекса IRIDA входят:

  • Интегрированная среда IRIDA Viewer, предназначеная для создания базы данных комплекса, помещения в базу данных дизассемблированного с использованием дизассемблера IDA PRO исполняемого кода программы, статического анализа потоков управления в исследуемой программе, подготовки маршрутов для динамического анализа и создания средств их анализа.
  • Программный комплекс ExeTracerME, предназначенный для расстановки контрольных точек для трассировки маршрутов хода выполнения исследуемого exe или dll модуля на платформе Windows и создания программы динамического и статического контроля динамических маршрутов в исследуемой программе.

Возможности инструментального комплекса IRIDA

С помощью IRIDA Viewer осуществляется интерактивное исследование программного кода. В IRIDA Viewer автоматизированы процессы получения следующих характеристик и представлений программного кода:

  • характеристик структурированности программного кода подпрограмм и их нарушения;
  • общее число путей в программе, минимаксное покрытие вершин (описание и представление минимального числа путей максимального веса, покрывающих все вершины (линейные участки) управляющего графа подпрограммы;
  • описание дерева вызова подпрограмм из заданной подпрограммы;
  • классификация подпрограмм, определение статистики вызовов подпрограмм и списков вызываемых подпрограмм процессными подпрограммами;
  • классификация передач управления на подпрограммы;
  • сопоставление структурных характеристик управляющего графа подпрограммы с операторами управления алгоритмического языка программирования и «поднятие» связей в УГП и др.

В рамках IRIDA Viewer автоматизированы также основные операции по подготовке динамического анализа (ДА) потоков управления в и между подпрограммами и создания средств для автоматического контроля соответствия статических и динамических маршрутов:

  • формирование статических маршрутов вызовов подпрограмм и их фиксация в базе данных путем установки контрольных точек на ближние и дальние вызовы подпрограмм;
  • формирование описания управляющего графа в виде ANTLR или упрощенной грамматики языка номеров контрольных точек дальних и ближних вызовов подпрограмм — создание паспортов потоков управления для подпрограмм.

Источник