最近、Kaitai Struct 0.9 の次のバージョンがリリースされました。これは、さまざまなバイナリ形式 (ネットワーク パケット、画像/音声/ビデオ ファイル、データベース、アーカイブ、コンテナなど) を記述および解析するための言語です。 バージョン番号 0.9 という軽薄なものにもかかわらず、これは過去 2.5 年半にわたる開発を含むメジャー リリースです。 この間、この言語は一連のプロジェクトに成長しました。
- 多くのプログラミング言語 (C++、C#、Construct、Go、Java、JavaScript、Lua、Nim、Perl、PHP、 Python、Ruby)、GraphViz 形式の図および HTML での人が判読できる形式の仕様。
- 同時に視覚的に制御できる便利な仕様開発用ツール: ウェブIDE, コンソールレンダラー, Visual Studio コード用プラグイン, ホビット, Veles, Hiew プラグイン, Binary Ninja用プラグイン;
- Kaitai Structを組立プロセスに統合するためのモジュール メイブン用, グラドル用, Python用, JavaScript/Webpack 用
- フォーマットライブラリ、このリリースにはすでに 156 個の説明があります (および さらに 78 のフォーマット プルリクエストのレビュー中です)。
- プラグイン可能な圧縮アルゴリズムのライブラリ カイタイ湿布
- FUSE用モジュール - Kaitai FS、形式の ksy 記述を使用してファイルをファイル システムとしてマウントできます。
言語 GitHub によって認識される 現在、400 を超える無料/オープンソース プロジェクトで、以下のようなあらゆる種類のエキゾチックなデータ形式を解析するために使用されています。 独自のゲーム データ ファイルのリバース エンジニアリングエンディング 衛星通信プロトコルの解析.
0.9 言語の主な革新のうち、強調する価値のあるものは次のとおりです。
- 新しいターゲット言語のサポート (Construct ライブラリ経由の Python、Nim、HTML ドキュメント生成)
- 最新の C++ を完全にサポート (スマート ポインター、メモリを手動で管理する必要がない、既知のメモリ リークをすべて修正)
- foo::bar::baz 構文によるネストされた型のアドレス指定のサポート
- 記述された条件に従った読み取りデータの検証のサポート (有効)
- 静的データ構造のサイズをバイトおよびビット単位で計算する (演算子 sizeof および bitsizeof)
- 形式での言語の正式な説明 JSONスキーマ、これから ドキュメントが生成される
出所: linux.org.ru