最近,Kaitai Struct 0.9 的下一個版本發布了——一種用於描述和解析各種二進制格式(例如,網絡數據包、圖像/音頻/視頻文件、數據庫、檔案、容器等)的語言。 儘管版本號為 0.9,但這是一個包含過去 2.5 年開發的主要版本。 在此期間,該語言已經發展成為一個完整的項目家族:
- 一個編譯器,允許您從許多編程語言(C++、C#、Construct、Go、Java、JavaScript、Lua、Nim、Perl、PHP、 Python、Ruby),以及 GraphViz 格式的圖表和 HTML 中人類可讀的格式規範;
- 通過同步視覺控制方便規範開發的工具: 網路整合開發環境, 控制台渲染器, Visual Studio 代碼插件, 霍比特人, 韋萊斯, 查看插件, Binary Ninja 插件;
- 用於將 Kaitai Struct 集成到裝配過程中的模塊 對於行家, 對於搖籃, 對於 Python, 對於 JavaScript/Webpack
- 格式庫,在此版本中已有 156 條描述(以及 78 種格式 正在拉取請求審查過程中)。
- 可插入壓縮算法庫 開泰壓縮包
- FUSE模塊 - 凱泰FS, 它允許您使用文件格式的 ksy 描述將文件掛載為文件系統
語 GitHub 認可 現在被用於 400 多個免費/開源項目來解析各種奇異的數據格式,範圍從 逆向工程專有遊戲數據文件結尾 衛星通信協議分析.
在 0.9 語言的主要創新中,值得強調的是:
- 支持新的目標語言(Python 通過 Construct 庫、Nim、HTML 文檔生成)
- 完全支持現代 C++(智能指針,無需手動管理內存,修復所有已知的內存洩漏)
- 支持通過 foo::bar::baz 語法處理嵌套類型
- 支持根據描述的條件驗證讀取數據(有效)
- 以字節和位為單位計算靜態數據結構的大小(運算符 sizeof 和 bitsizeof)
- 形式語言的正式描述 JSON 模式, 從現在 文檔生成
來源: linux.org.ru