Hiljuti ilmus uus versioon Kaitai Struct 0.9 — binaarsete formaatide (nt võrgupakettide, pildifailide/audiovideo, andmebaaside, arhiivide, konteinerite jne) kirjeldamise ja analüüsimise keel ja tööriistakomplekt. Vaatamata tõsiseltvõetava versiooninumbriga 0.9 on tegu suure väljaandega, mis sisaldab arendusi viimase 2,5 aasta jooksul. Selle aja jooksul on keel kasvanud terveks projektide pereks:
- kompilaator, mis võimaldab luua formaadi spetsifikatsiooni failist (.ksy) töötava parseri lähtekoodi mitmesugustes programmeerimiskeeltes (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), samuti diagramme GraphVizi formaadis ja arusaadavaid formaadi spetsifikatsioone HTML-is;
- tööriistad mugavaks spetsifikatsioonide arendamiseks koos reaalajas visuaalse jälgimisega: Web IDE, konsoolivisualisaator, plugin Visual Studio Code'ile, võimaldab kasutada pluginakomplekti, mida saab aktiveerida või deaktiveerida vastavalt praegusele ülesandele — faili analüüs, töötlemine või visualiseerimine. On olemas pluginaid andmete otsimiseks, nende struktuuri analüüsimiseks regulaaravaldiste kaudu ja tüüpiliste mallide esitlemiseks., Veles, plugin Hiew'le, plugin Binary Ninja'le;
- moodulid Kaitai Structi integreerimiseks ehitusprotsessi Maven'i jaoks, Gradle'i jaoks, Python'i jaoks, JavaScript'i/WebPack'i jaoks
- formaadikogumik, millel on selles väljaandes juba 156 kirjeldust (ja veel 78 formaati on üle vaatamise protsessis).
- kompressioonialgoritmide teek Kaitai Compress
- FUSE moodul — Kaitai FS, mis võimaldab mountida faili kui failisüsteemi, kasutades ksy vormingu kirjeldust
Keele on tunnustatud GitHub'is ja kasutatakse nüüd rohkem kui 400 tasuta/avatud lähtekoodiga projektis igasuguste eksootiliste andmefailide analüüsimiseks, alates proprietaarsete mängufailide tagasipööramisest, lõpetades satelliitide sideprotokollide analüüsiga.
Kea 0.9 põhifunktsioonid, mida tasub välja tuua:
- uute sihtkeelte toetamist (Python Construct'i teegi kaudu, Nim, HTML-i dokumentatsiooni genereerimine)
- täielik toimetamine kaasaegsete C++'de (nutikad näitajad, ilma mälu käsitsi haldamise vajaduseta, kõigi teadaolevate mälu lekete parandamine)
- sisekujundite aadressimise toetamist süntaksiga foo::bar::baz
- loetletud tingimustele vastavate loetud andmete valideerimise toetamist (valid)
- staatiliste andmestruktuuride suuruste arvutamine baitides ja bittides (operaatorid sizeof ja bitsizeof)
- keele formaalne kirjeldus JSON-skeemi kujul, mille põhjal genereeritakse nüüd dokumentatsioon🥇Kaitai Struct 0.9 | ProHoster 🥇Kaitai Struct 0.9 | ProHoster
Allikas: linux.org.ru

