Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


BARF Project

Мультиплатформенный двоичный анализ с открытым исходным кодом: BARF Project

Анализ бинарного кода является важнейшей задачей во многих областях компьютерных наук и программных дисциплин, начиная от защиты программного обеспечения и анализа программ до обратного проектирования. Ручной двоичный анализ — сложная и трудоемкая задача, и существуют программные средства, которые стремятся автоматизировать процесс или помочь аналитикам. Однако, большинство этих инструментов имеют ряд технических и коммерческих ограничений, которые ограничивают доступ и использование данных инструментов для значительной части академических и практических сообществ. BARF — это бинарный анализ с открытым исходным кодом, который предназначен для поддержки широкого круга задач анализа двоичного кода, которые являются общими для дисциплины информационной безопасности. Это платформа с поддержкой сценариев, которая поддерживает поднятие инструкций из нескольких архитектур, двоичный перевод в промежуточное представление, расширяемый фреймворк для плагинов для анализа кода и взаимодействия с внешними инструментами, такими как отладчики, SMT-решающие устройства и средства контроля инструментов. Эта структура предназначена, в первую очередь, для анализа с участием человека, но может быть полностью автоматизирована.

Скачать BARF Project

мультиплатформенный двоичный анализ с открытым исходным кодом

Проект BARF включает BARF и соответствующие инструменты и пакеты. Пока проект состоит из следующих элементов:

  • BARF: Мультиплатформенный двоичный анализ с открытым исходным кодом и фреймворком обратного проектирования.
  • PyAsmJIT: JIT для архитектруы Intel x86_64 and ARM.
  • Инструменты, созданные на базе BARF:
    • BARFgadgets: Позволяет вам искать, классифицировать и проверять ROP приспособления внутри двоичной программы.
    • BARFcfg: Позволяет восстановить граф потока управления функциями двоичной программы.
    • BARFcg: Позволяет вам восстановить граф вызовов функций двоичной программы.

Для получения большей информации ознакомьтесь с:

  • BARF: Мультиплатформенный двоичный анализ с открытым исходным кодом и фреймворком обратного проектирования (Подробный доклад) [en]
  • BARFing Gadgets (презентация ekoparty2014) [es]

BARF Project

BARF — это пакет Python для двоичного анализа и обратного проектирования. Он может:

  • Загружать двоичные программы в разных форматах (ELF, PE и т. д.),
  • Поддерживает архитектуру Intel x86 для 32 и 64 бит,
  • Поддерживает архитектуру ARM для 32 бит,
  • Работает на промежуточном языке (REIL), поэтому весь алгоритм анализа является агностическим
  • Имеет интеграцию с Z3 и CVC4 SMT решающими устройствами, что означает, что вы можете выражать фрагменты кода в виде формул и проверять ограничения на них.

Установка BARF Project

BARF зависит от следующих SMT решающих устройств:


Codeby Security School от Сodeby

Мы запустили свою онлайн школу по информационной безопасности. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного в курсе Paranoid


  • Z3 : Высокопроизводительный корректор теорем, разработанный в Microsoft Research.
  • CVC4 : Эффективный автоматизированный метод доказательства теорем с открытым исходным кодом для выполнимости проблем по модулю теорий (SMT).

Следующая команда выполнит установку BARF на вашу систему:

Вы также можете установить ее локально:

Примечания

  • сего лишь одно SMT решающее устройство необходимо для корректной работы. Вы можете выбрать между Z3 и CVC4 или установить оба. Вы можете использовать сценарий barf-install-solver.sh, который скачает и установит оба решающих устройства
  • Для запуска тестов, вам необходимо будет сначала установить PyAsmJIT first.

Обзор BARF Project

Весь фреймфорк разделен на 3 главных компонента:  core (ядро), arch и  analysis (анализ).

Core

Этот компонент включает в себя следующие существенные компоненты:

  • REIL: Предоставляет определения для языка REIL. Он также реализует эмулятор (emulator) и синтаксический анализатор (parser).
  • SMT : Предоставляет средства для взаимодействия с Z3 SMT решающим устройством. Также, он предоставляет функциональность для перевода REIL инструкций в SMT выражения
  • BI : Модуль Binary Interface отвечает за загрузку двоичных файлов для обработки (он использует [PEFile] и [PyELFTools].)

Arch

Каждая поддерживаемая архитектура предоставляется в виде подкомпонента, который содержит следующие модули.

  • Architecture : Описывает архитектуру, т. е. регистры, размер адреса памяти.
  • Translator : обеспечивает переводчиков в REIL для каждой поддерживаемой инструкции.
  • Disassembler : обеспечивает разборку функций (использует Capstone.)
  • Parser : преобразует инструкцию в строку объектной формы (предоставляется модулем инструкций).

Analysis

Пока этот компонент состоит из двух модулей: Control-Flow Graph, Call Graph и Code Analyzer. Первые два, обеспечивает функциональность для восстановления CFG и CG, соответственно. Последний является высокоуровневым интерфейсом для функций, связанных с SMT-решающими устройствами.

Структура директории

Перевод: Анна Давыдова
Источник: n0where.net

Это интересно:


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

Hack The Sedna — CTF В этой статье, я хочу показать взлом уязвимой виртуальной машины, в рамках CTF Challenge. Итак, Hack the Sedna. Качаем VM образ отсюда Чита...
Lunar — инструмент аудита безопасности UNIX... Инструмент аудита безопасности UNIX: lunar Блокировка аудита и отчетности UNIX Wiki проекта Скачать Lunar Эти скрипты генерируют заключение ауди...
Drozer — система оценки безопасности Android... Перевод: Анна Давыдова Источник: n0where.net Система оценки безопасности Android Drozer (раньше Mercury) является ведущей системой проверки безо...
Обновление WordPress Exploits Framework – WPXF V1.... Вышло обновление WordPress Exploits Framework – WPXF V1.4. С этими обновлениями, я бы и хотел ознакомить аудиторию. Итак, версия - WPXF V1.4. Устано...
Фреймворк Katana Фреймворк написан на Python, целью его создания является облегчение тестирования на проникновение. Как я успел заметить, фреймворк модульный, до...