Preview

Труды Института системного программирования РАН

Расширенный поиск

Декларативный язык FlexT - инструмент анализа и документирования бинарных форматов данных

https://doi.org/10.15514/ISPRAS-2016-28(5)-15

Аннотация

Язык FlexT разработан для спецификации бинарных форматов данных. Язык является декларативным, рассчитанным на хорошее восприятие человеком, его основными конструкциями являются определения типов данных, которые напоминают определения типов в императивных языках программирования, но являются более гибкими. В работе сделан обзор возможностей современных проектов, направленных на спецификацию бинарных форматов файлов. Далее рассматриваются особенности языка FlexT, отдельно описываются возможности языка, позволяющие работать с форматами кодирования машинных команд. Кратко описаны реализованные программные системы, использующие интерпретатор FlexT и некоторые новые возможности поиска информации в бинарных файлах, которые даёт использование спецификаций.

Об авторах

А. Е. Хмельнов
Институт динамики систем и теории управления имени Матросова СО РАН
Россия


И. В. Бычков
Институт динамики систем и теории управления имени Матросова СО РАН
Россия


А. А. Михайлов
Институт динамики систем и теории управления имени Матросова СО РАН
Россия


Список литературы

1. Faase F.J. BFF: A grammar for Binary File Formats [Электронный ресурс] URL: http://www.iwriteiam.nl/Ha_BFF.html

2. Data Format Description Language (DFDL) [Электронный ресурс] URL: https://www.ogf.org/ogf/doku.php/standards/dfdl/dfdl

3. IBM Knowledge Center [Электронный ресурс] Data Format Description Language (DFDL) URL: http://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df20060_.htm

4. IBM Integration Bus [Электронный ресурс] URL: http://www-03.ibm.com/software/products/en/ibm-integration-bus/

5. Daffodil: Open Source DFDL [Электронный ресурс] URL: https://opensource.ncsa.illinois.edu/confluence/display/DFDL

6. IBM Knowledge Center [Электронный ресурс] Unsupported features URL: http://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df00150_.htm

7. WebLogic Integration 7.0 [Электронный ресурс] Building Format Definitions. URL: https://docs.oracle.com/cd/E13214_01/wli/docs70/diuser/fmtdef.htm

8. NetPDL Language Specification. http://www.nbee.org/doku.php?id=netpdl:index

9. BinPAC. https://www.bro.org/sphinx/components/binpac/README.html

10. The data description language EAST specification (CCSD0010). [Электронный ресурс] URL: http://mtc-m16c.sid.inpe.br/col/sid.inpe.br/mtc-m18@80/2009/07.21.13.31/doc/CCSDS%20644.0-B-2.pdf

11. Calder B.R., Masetti G. Huddler: a multi-language compiler for automatically generated format-specific data drivers. U.S. Hydrographic Conference (US HYDRO) 2015 Доступно по ссылке: http://www.hypack.com/ushydro/2015/papers/pdf/Calder_Huddler_for_automatic_data_drivers.pdf

12. Georgia Tech Research Institute [Электронный ресурс] Digital Archives Research URL: http://perpos.gtri.gatech.edu/

13. Underwood W. Grammar-Based Specification and Parsing of Binary File Formats. The International Journal of Digital Curation Vol. 7, No. 1, 2012, pp. 95-106 Доступно по ссылке: http://www.ijdc.net/index.php/ijdc/article/viewFile/207/276

14. Parr T. ANTLR (ANother Tool for Language Recognition) [Электронный ресурс] URL: http://www.antlr.org/

15. Godmar Back. 2002. DataScript - A Specification and Scripting Language for Binary Data. In Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering (GPCE '02), Don S. Batory, Charles Consel, and Walid Taha (Eds.). Springer-Verlag, London, UK, UK, 66-77.

16. DataScript [Электронный ресурс] URL: http://datascript.sourceforge.net/

17. Binary data definition language [Электронный ресурс] URL: http://www.binarydom.com/sdk/doc/bddl.shtml

18. Binopedia [Электронный ресурс] URL: http://binopedia.org/

19. Kaitai Struct [Электронный ресурс] URL: http://kaitai.io/

20. Synalyze It! [Электронный ресурс] URL: https://www.synalysis.net/

21. Hexinator [Электронный ресурс] URL: https://hexinator.com/hexinator-windows/

22. Synalyze It! [Электронный ресурс] The Grammar Page. https://www.synalysis.net/formats.xml

23. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ: Пер. с англ. - М.:Мир, 1989.

24. Филд А., Харрисон П. Функциональное программирование: Пер. с англ. - М.:Мир, 1993

25. Ramsey N., Fernandez M.F. 1995. The New Jersey machine-code toolkit. In Proceedings of the USENIX 1995 Technical Conference Proceedings (TCON'95). USENIX Association, Berkeley, CA, USA, 24-24.

26. Ramsey N., Fernandez M.F. The New Jersey Machine-Code Toolkit [Электронный ресурс] URL: http://www.cs.tufts.edu/~nr/toolkit/

27. Хмельнов А.Е. Главная страница по языку FlexT. http://hmelnov.icc.ru/FlexT/


Рецензия

Для цитирования:


Хмельнов А.Е., Бычков И.В., Михайлов А.А. Декларативный язык FlexT - инструмент анализа и документирования бинарных форматов данных. Труды Института системного программирования РАН. 2016;28(5):239-268. https://doi.org/10.15514/ISPRAS-2016-28(5)-15

For citation:


Hmelnov A.Y., Bychkov I.V., Mikhailov A.A. A declarative language FlexT for analysis and documenting of binary data formats. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(5):239-268. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(5)-15



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)