2 个版本
0.1.1 | 2021年4月27日 |
---|---|
0.1.0 | 2021年4月13日 |
#86 在 #binaries
12KB
122 行
ktest-parser
ktest-parser 是一个工具,用于解析 KLEE 的输出 .ktest
二进制文件,将其转换为 Rust 友好的结构体。
KTest 文件格式描述
KTest 二进制文件结构如下,
- 头部
- KLEE 参数
- 符号参数
- KTest 对象。
以下部分将详细描述结构。每个新部分从字节 0 开始,但它们依次排列。例如,参数部分从字节 8 开始,这是头部部分结束的地方。但这样描述结构更简单。
头部
头部描述了魔术数字,它可以是 "KTEST" 或 "BOUT/n"。然后是文件格式的版本。
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..5 | HDR | 文件格式(默认:KTEST) | 4 字节 |
5..8 | VERSION | 文件格式版本 | 4 字节 |
参数
参数部分描述了参数数量,然后是参数的重复部分,其中每个参数首先由大小描述,然后是长度大小的内容。
信息
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..4 | NUMARGS | 参数数量 | 4 字节 |
参数
这会重复 (NUMARGS) 次。
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..4 | SIZE | 参数大小 | 4 字节 |
4..(4+SIZE) | ARG | 一个参数 | (SIZE) 字节 |
符号参数
描述符号参数。
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..4 | ARGVS | 无 | 4 字节 |
4..8 | ARGVLEN | 无 | 4 字节 |
对象
与参数部分类似,第一项是对象的数量。然后是对象的重复部分,其中每个对象首先由大小描述,然后是长度大小的内容。
信息
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..4 | NUMOBJECTS | 对象数量 | 4 字节 |
对象
这会重复 (NUMOBJECTS) 次。
BYTE | NAME | DESCRIPTION | LENGTH |
---|---|---|---|
0..4 | SIZE | 对象大小 | 4 字节 |
4..(4+SIZE) | OBJECT | 一个对象 | (SIZE) 字节 |
许可证
许可证下 BSD-3。见 LICENSE。
贡献
欢迎提出问题和拉取请求!请参阅 CONTRIBUTING.md。
依赖
~3.5MB
~71K SLoC