Получи 30.000 рублей от codeby

Мы запустили конкурс для авторов, в котором может принять участие любой желающий. За первое место - 7500 руб., второе - 5000, третье 2500. Главный приз 30.000 рублей вы получаете независимо от места в конкурсе. Подробнее на форуме 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 webinar

Набираем команду для организации и проведения вебинаров Подробнее ...

  • 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[/guest]

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


Требуются разработчики и тестеры для проекта codebyOS

Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

Похожие темы

VolUtility — фреймворк веб интерфейса Volati... Структура веб интерфейса Volatility После статьи Evolve - веб интерфейса для криминалистического фреймворка volatility, многие пользователи ста...
За гранью хакерских возможностей — 3... Сегодня продолжим наше завлекательно путешествие в корпоративной сети тестовой лаборатории и возьмем очередной токен от SSH машины. Напомню вам что...
TP Link TL-WN722N monitor mode работает! Спешу сообщить всем тем кто приобрел себе этот TP Link TL-WN722N monitor mode IS WORK! замечательный девайс для тестирования на проникновение беспро...
Metasploit – руководство пользователя... Это неофициальный перевод руководства пользователя Metasploit на русский язык. Перевод может содержать неточности. Оригинал статьи на английском я...
Протокол SMB (Server Message Block) Принцип работы SMB. Протокол SMB (Server Message Block) работает на прикладном и представительском уровне модели OSI. И используется для удал...