kaitai-io/kaitai_struct
GitHub: kaitai-io/kaitai_struct
Kaitai Struct 是一种声明式语言和编译器工具,用于描述二进制数据结构并自动生成多语言解析器代码,解决跨平台二进制格式解析的重复劳动问题。
Stars: 4545 | Forks: 206
# Kaiti Struct
[](https://gitter.im/kaitai_struct/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## 什么是 Kaitai Struct?
Kaitai Struct (KS) 是一种声明式语言,用于描述各种二进制数据结构,这些结构位于文件或内存中:即二进制文件格式、网络流数据包格式等。
其核心思想是:使用 Kaitai Struct 语言(`.ksy` 文件)对特定格式进行一次描述,然后使用 `kaitai-struct-compiler`(简称 `ksc`)将其编译为一种受支持编程语言的源文件。这些模块将包含生成的解析器代码,该解析器可以从文件或流中读取所描述的数据结构,并通过一个友好、易于理解的 API 提供访问接口。
## 它有什么用途?
你是否曾编写过重复、容易出错且难以调试的代码,用于从文件或网络流中读取二进制数据结构,并将其以某种方式在内存中表示以便于访问?
Kaitai Struct 旨在让这项工作变得更简单 —— 你只需描述一次二进制格式,然后所有人都可以在各自的编程语言中使用它 —— 跨语言、跨平台。
Kaitai Struct 包含了一个不断增长的格式描述集合,可在 [formats](https://github.com/kaitai-io/kaitai_struct_formats) 子模块仓库中找到。
## 在你的项目中使用 KS
通常,在你的项目中使用 KS 描述的格式涉及以下步骤:
* 描述格式 —— 即创建一个 `.ksy` 文件
* 使用可视化工具调试格式,确保其正确解析数据(官方可视化工具是 [Web IDE](https://ide.kaitai.io/) 和控制台可视化工具 [ksv](https://github.com/kaitai-io/kaitai_struct_visualizer))
* 将 `.ksy` 文件编译为目标语言源文件,并将该文件包含在你的项目中
* 将适用于你特定语言的 KS 运行时库添加到你的项目中(别担心,它很小,主要是为了确保生成代码的可读性)
* 使用生成的类来解析你的二进制文件或流,并访问其组件
要查看示例、受支持的语言列表、下载说明和许可信息,请访问 https://kaitai.io/。
标签:Android, C++, CMS安全, DAST, DNS枚举, DNS解析, DSL, Go, JavaScript, JS文件枚举, Kaitai Struct, Lua, Nim, OpenVAS, Perl, PHP, Python, rizin, Ruby, Ruby工具, Rust, 二进制数据, 二进制解析, 云安全监控, 云资产清单, 代码生成, 内核驱动, 可视化界面, 声明式语言, 多语言支持, 安全测试框架, 开源项目, 恶意软件分析, 数字取证, 数据可视化, 数据擦除, 数据结构, 文件格式, 无后门, 日志审计, 格式标准化, 渗透测试工具, 知识库, 结构化数据, 编译器, 网络协议, 网络安全工具, 网络流量审计, 网络调试, 自动化, 自动化脚本, 解析器生成器, 逆向工具, 逆向工程, 静态分析