Rozšíření generátoru parserů Kaitai Struct o podporu serializace
Extending the Kaitai Struct parser generator to support serialization
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Petr Pučil
Vedoucí práce
Sojka Michal
Oponent práce
Štěpán Petr
Studijní obor
Internet věcíStudijní program
Otevřená informatikaInstituce přidělující hodnost
katedra měřeníPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Kaitai Struct (KS) je nástroj pro práci s binárními formáty. Zavádí deklarativní doménově specifický jazyk Kaitai Struct YAML (.ksy) pro popis struktury libovolných binárních formátů. Na základě jakékoliv specifikace dokáže KS automaticky vygenerovat hotový modul pro parsování v jednom z 11 programovacích jazyků. Dosud KS umožňoval pouze parsovat data z binárních souborů do stromu objektů. V mnoha případech je však potřeba i opačný směr (serializace), tj. úprava dat v binárním souboru nebo vytvoření nového. To lze použít k převodu souborů mezi formáty, k přenosu dat mezi počítači pomocí transportního protokolu nebo k fuzzingu, což je užitečné pro detekci chyb v parserech. Tato práce přidává do projektu KS podporu serializace pro Javu. To zahrnuje rozšíření kompilátoru, přidání podpory serializace do běhové knihovny a vybudování automatizované testovací infrastruktury pro serializaci. Výsledkem je serializační modul, který funguje pro téměř všechny formátové specifikace KSY v oficiální galerii formátů, kterých je více než 180. Aby bylo zajištěno, že implementace funguje v identifikovaných okrajových případech, bylo přidáno 59 unit testů. Kaitai Struct (KS) is a tool for working with binary formats. It introduces a declarative domain-specific language Kaitai Struct YAML (.ksy) for describing the structure of arbitrary binary formats. Based on any specification, KS can automatically generate a ready-to-use parsing module in one of 11 programming languages. Until now, KS only allowed to parse data from binary files to an object tree. However, in many cases, the opposite direction (serialization) is also needed, i.e., to modify the data in binary files or to create new ones. This can be used to convert files between formats, to transfer data between computers using a transport protocol, or for fuzzing, useful for detecting bugs in parsers. This work adds serialization support for Java to the KS project. This involves extending the compiler, adding support for serialization in the runtime library, and building an automated testing infrastructure for serialization. The result is a serialization module that works for almost all KSY format specifications in the official format gallery, of which there are over 180. To ensure that the implementation works in identified edge cases, 59 unit tests were added.
Kolekce
- Bakalářské práce - 13138 [286]