Вышел язык спецификации бинарных форматов Kaitai Struct 0.5
Проект Kaitai представил новый релиз Kaitai Struct версии 0.5, декларативного языка описания бинарных форматов и структур ..., Проект Kaitai представил новый релиз Kaitai Struct версии
Проект Kaitai представил новый релиз Kaitai Struct версии 0.5, декларативного языка описания бинарных форматов и структур данных. Как и прежде, основная идея проекта заключается в том, что практически любой формат файла или структуру сетевого протокола можно описать на Kaitai Struct, составив исходный файл .ksy, который затем компилируется (с помощью прилагаемого компилятора ksc) в готовый парсер на любом из поддерживаемых языков программирования. Основная сфера применения подобного решения - разбор всевозможных существующих (зачастую закрытых и проприетарных) форматов (офисных, мультимедийных и т.д.) и протоколов. Благодаря наличию продвинутых инструментов отладки и визуализации, Kaitai Struct нашел свое применение и в быстром реверс-инжиниринге неизвестных форматов, а также в digital forensics. Ряд организаций, занимающийся хранением исторических цифровых архивов, взяли Kaitai Struct на вооружение как стандарт описания форматов данных. Компилятор Kaitai Struct распространяется под лицензией GPLv3, большая часть runtime - под MIT. Для желающих попробовать компилятор без установки подготовлен javascript-вариант компилятора KS с примерами. Наиболее заметные изменения: Поддержка новых целевых языков Полная поддержка целевого языка C++ (на базе STL), а также новые целевые языки PHP и Perl: Вывод описаний форматов в виде наглядных человеко-читаемых схем (через GraphViz). Подборка примеров визуализаций доступна в галерее; title="Вышел язык спецификации бинарных форматов Kaitai Struct 0.5" Многочисленные доработки и проверки для полноценной поддержки как Python 2, так и Python 3. Как и раньше, кроме новых языков, все еще поддерживаются C#, Java, javascript, Python, Ruby. Новые инструменты для разработки, отладки и визуализации Консольный визуализатор ksv обновлен и теперь работает не только на UNIX-консолях (Linux, *BSD, OS X), но и под Windows: -->Появился экспериментальный GUI-визуализатор на Java/Swing: