kaitai 是一个开源的用于解析二进制文件的解析器,包含了编译器、IDE 和一系列常用的二进制格式描述脚本,你可以直接利用这些脚本去解析对应的二进制文件。
它支持的语言:
- C++/STL
- C#
- Go (*)
- Java
- JavaScript
- Lua
- Perl
- PHP
- Python
- Ruby
安装编译工具
通过命令行安装 compiler:
1 | brew install kaitai-struct-compiler |
使用举例:解析 .gif
文件
1 编写描述脚本
描述脚本以 .ksy
为扩展名,语法参考这里,对于同一个二进制文件,由于关注的数据重点不相同,描述可以有很多种,下面是 .gif
的描述:
1 | meta: |
2 编译成目标语言
本示例使用 javascript,
1 | ksc -t javascript Gif.ksy |
3 编写调用
1 | // index.js |
通过命令行执行:
1 | nodejs index.js |
查看终端输出结果,已经从 gif 文件中获取图像的宽和高值。
更多“配方”
官网提供了众多已经定义好的“配方”供大家参考,请看这里