#syscalls #syzkaller #syzlang

nightly no-std bin+lib syzlang-parser

Parse Syzlang language

5 releases

0.1.4 Mar 7, 2024
0.1.3 Mar 3, 2024
0.1.2 Feb 25, 2024
0.1.1 Jan 28, 2024
0.1.0 Jan 28, 2024

#424 in Data structures

48 downloads per month
Used in 3 crates (2 directly)

Custom license

130KB
4K SLoC

syzlang-parser

Parse Syzkaller data into structures more useful in Rust.

Status

This projects was created to extract some system call descriptions and you should not expect it to parse everything from the latest version of Syzkaller. A known working version of Syzkaller is hash 1834ff143d083ae2c374f2a18d887575887321a9.

I use this is in my build.rs file, therefore I haven't seen much need for fixing the many uses of unwrap(). This crate should not be seen as stable to use if you don't decide on the data source during compilation time. I will hopefully fix this at some point.

Build

To build with our without CLI tool to parse Syzkaller checkout.

cargo build --release
cargo build --release --features=cli

There is also a Makefile.toml used by cargo-make but that can be ignored.

To test on a checkout of Syzkaller you can use:

cargo run --features=cli -- --os all --dir /path/to/syzkaller -a process

This will parse everything, but do not store the results, see help command for more info.

Dependencies

~1–2.6MB
~52K SLoC