SBA: статическая бинарная структура анализа
Что должна делать статическая структура бинарного анализа?
- Уменьшить усилия по реализации для индивидуального анализа
- Только 250 локаций в C ++ для реализации анализа для проверки свойств функций.
- Высоко настраивается
- Абстрактная структура на основе интерпретации, которая позволяет пользователю определять абстрактные домены и настраивать оценку инструкций.
- Звуковые и точные рассуждения о памяти стека
- Модель памяти стека в гранулярности уровня байта, а также звуковые и эффективные приближения для неточных обновлений в стеке.
- Нейтральный архитектура
- Декупильна анализ из специфики архитектуры, таких как языки сборки и спецификации ABI.
Начиная
Зависимости
sudo apt-get install g++ ocaml camlp4-extra camlp4 tar cmake make
Построить SBA
mkdir build && cd build
cmake .. && make -j4
Приложения
Анализ таблицы прыжков
Чтобы проанализировать двоичный объект ~/obj , используйте следующую команду:
./jump_table x86_64.auto ~/obj
По умолчанию SBA создает временные файлы и выходы, приводят к /tmp/sba/ . Эти пути могут быть указаны с использованием -d и -o следующим образом:
./jump_table -d /tmp/sba/ -o /tmp/sba/result x86_64.auto ~/obj
Публикации
SBA внесла значительный вклад в реализацию следующих работ:
- Масштабируемый, звуковой и точный анализ таблиц прыжков. ISSTA 2024.
- Точная разборка сложных двоичных файлов без использования метаданных компилятора. ASPLOS 2023.
- Более безопаснее: эффективная и текущая ошибка бинарная инструментация. USENIX 2023.
- Практическая мелкозернистая рандомизация бинарного кода. ACSAC 2020.