Bu yaxınlarda Kaitai Struct 0.9-un növbəti versiyası buraxıldı - təsvir dili və müxtəlif ikili formatları (məsələn, şəbəkə paketləri, şəkil/audio/video faylları, verilənlər bazası, arxivlər, konteynerlər və s.) təhlil etmək üçün alətlər. Qeyri-ciddi görünən 0.9 versiyasına baxmayaraq, bu, son 2.5 il ərzində baş verənləri özündə cəmləşdirən əsas buraxılışdır. Bu müddət ərzində dil bütün layihələr ailəsinə çevrildi:
- bir formatdan müxtəlif proqramlaşdırma dillərində (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) hazır təhlilçi mənbə kodu əldə etməyə imkan verən kompilyator. spesifikasiya faylı (.ksy), həmçinin GraphViz formatında diaqramlar və HTML-də insan tərəfindən oxuna bilən format spesifikasiyaları;
- eyni vaxtda vizual nəzarət ilə spesifikasiyaların rahat inkişafı üçün alətlər: Veb IDE, konsol vizualizatoru, Visual Studio Kodu üçün plagin, Hobbi, Veles, Hiew üçün plagin, Binary Ninja üçün plagin;
- Kaitai Struct-un montaj prosesinə inteqrasiyası üçün modullar Maven üçün, Gradle üçün, Python üçün, JavaScript/WebPack üçün
- format kitabxanası, bu buraxılışda artıq 156 təsviri var (və daha 78 format sorğunun nəzərdən keçirilməsi prosesindədir).
- plug-in sıxılma alqoritmlərinin kitabxanası Kaitai kompresi
- FUSE üçün modul - Kaitai FS, formatının ksy təsvirindən istifadə edərək faylı fayl sistemi kimi quraşdırmağa imkan verir
Dil GitHub tərəfindən tanınır və indi 400-dən çox pulsuz/açıq mənbə layihələrində bütün növ ekzotik məlumat formatlarını təhlil etmək üçün istifadə olunur. tərs mühəndislik mülkiyyəti olan oyun məlumat fayllarıkamming peyk rabitəsi protokollarının təhlili.
0.9 dilinin əsas yenilikləri arasında vurğulamağa dəyər:
- yeni hədəf dillərə dəstək (Construct kitabxanası vasitəsilə Python, Nim, HTML-də sənədlərin yaradılması)
- müasir C++ üçün tam dəstək (ağıllı göstəricilər, yaddaşı əl ilə idarə etməyə ehtiyac yoxdur, bütün məlum yaddaş sızmalarını düzəldir)
- foo::bar::baz kimi sintaksis vasitəsilə yuvalanmış növlərə müraciət etmək üçün dəstək
- təsvir olunan şərtlərə uyğun olaraq oxunan məlumatların təsdiqlənməsi üçün dəstək (etibarlı)
- statik məlumat strukturlarının bayt və bitlərdə ölçülərinin hesablanması (sizeof və bitsizeof operatorları)
- formada dilin formal təsviri JSON sxemləri, indidən sənədlər yaradılır
Mənbə: linux.org.ru