Zobrazit minimální záznam

Extending the Kaitai Struct parser generator to support serialization



dc.contributor.advisorSojka Michal
dc.contributor.authorPetr Pučil
dc.date.accessioned2024-06-18T14:25:46Z
dc.date.available2024-06-18T14:25:46Z
dc.date.issued2024-06-10
dc.identifierKOS-1240524434905
dc.identifier.urihttp://hdl.handle.net/10467/115334
dc.description.abstractKaitai 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ů.cze
dc.description.abstractKaitai 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.eng
dc.publisherČeské vysoké učení technické v Praze. Vypočetní a informační centrum.cze
dc.publisherCzech Technical University in Prague. Computing and Information Centre.eng
dc.rightsA 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.htmleng
dc.rightsVysokoš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.htmlcze
dc.subjectKaitai Structcze
dc.subjectgenerátor parserůcze
dc.subjectserializacecze
dc.subjectparsovánícze
dc.subjectbinární formátycze
dc.subjectKaitai Structeng
dc.subjectparser generatorseng
dc.subjectserializationeng
dc.subjectparsingeng
dc.subjectbinary formatseng
dc.titleRozšíření generátoru parserů Kaitai Struct o podporu serializacecze
dc.titleExtending the Kaitai Struct parser generator to support serializationeng
dc.typebakalářská prácecze
dc.typebachelor thesiseng
dc.contributor.refereeŠtěpán Petr
theses.degree.disciplineInternet věcícze
theses.degree.grantorkatedra měřenícze
theses.degree.programmeOtevřená informatikacze


Soubory tohoto záznamu





Tento záznam se objevuje v následujících kolekcích

Zobrazit minimální záznam