Abstract

A number of tasks related to binary data formats include the tasks of parsing, generating and сonjoint code and data analysis. A key element for all of these tasks is a universal data format model. This paper proposes an approach to modeling binary data formats. The described model is expressive enough to specify the most common data formats. The distinctive feature of the model its flexibility in specifying field locations, as well as the ability to describe external fields, which do not resolve into detailed structure during parsing. Implemented infrastructure allows to create and modify a model using application programming interfaces. An algorithm is proposed for parsing binary data by a model, based on the concept of computability of fields. The paper also presents a domain-specific language for data format specification. The specified formats and potential applications of the model for programmatic analysis of formatted data are indicated.

Highlights

  • Необходимость обработки сложных структур данных возникает во всех сферах системного и прикладного программирования

  • При этом описанный формальный язык сам по себе существует и данное сообщение об ошибке следует интерпретировать как то, что алгоритм не способен разобрать данный формат и гарантированно войдет в вечный цикл

  • His research interests include compiler technologies, software security, binary code analysis, parallel programming, emulation, and virtualization

Read more

Summary

Введение

Необходимость обработки сложных структур данных возникает во всех сферах системного и прикладного программирования. Для обработки данных определенного формата программисту необходимо реализовать средство разбора, которое будет восстанавливать структуру данных и характеристики представленного объекта. В основе всех этих инструментов лежит универсальная модель формата данных. Эта модель должна обладать достаточной выразительностью для описания всех встречающихся форматов данных. Что наличие такой модели позволяет не только разбирать данные произвольного формата, но и проводить совместный анализ кода и данных. Помимо разбора и анализа данных, актуальной задачей является задача генерации данных заданного формата для фаззинга систем. Ключевой задачей при работе с форматами является разработка модели формата. Модель и декларативный язык спецификации бинарных форматов данных. В данной работе представлена разработанная модель формата данных, отвечающая сформулированным требованиям, реализованная на базе системы анализа бинарного кода Glassfrog. 4 предлагается универсальная модель формата данных, описываются декларативный язык для спецификации форматов и алгоритм разбора данных на основе предложенной модели. В заключении формулируются отличительные черты предложенной модели и предполагаемые практические приложения

Форматы данных
Синтаксический анализ
Грамматики с зависимостями по данным
Существующие инструменты
Алгоритм разбора
Язык Ribbit
Примеры использования
Ограничения предлагаемого решения
Применение к задачам генерации данных
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call