最近,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 代码插件, 霍比特人, 威勒斯, 查看插件, 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