Syzkaller Description Workflow
Full Build Loop for New Descriptions
When adding new syscall descriptions, follow this workflow:
bash
cd /opt/syzkaller # 1. Write/edit your .txt file in sys/linux/ # 2. Create a .const file with constant values (see syz-extract-constants skill) # The .const file should be named: sys/linux/your_file.txt.const # 3. Compile descriptions make descriptions # 4. Build syzkaller make all
Quick Rebuild (After Minor Edits)
If you only changed descriptions (not constants):
bash
cd /opt/syzkaller make descriptions # Runs syz-sysgen to compile descriptions
If you add new constants, update the .const file first.
Common Errors
Unknown type
code
unknown type foo_bar
- •Type not defined, or defined after first use
- •Define all types before using them
Constant not available / defined for none of the arches
code
SOME_CONST is defined for none of the arches
- •The constant isn't in the
.constfile - •Add it to
sys/linux/your_file.txt.constwith the correct value
Missing reference
code
undefined reference to 'some_type'
- •Type defined in another file not being found
- •Check includes or existing type definitions
Exploring Existing Code
Find examples of patterns:
bash
grep -r "pattern" /opt/syzkaller/sys/linux/
Useful searches:
- •
resource fd_- How other fd resources are defined - •
ioctl\$- Ioctl definition patterns - •
read\$/write\$- Read/write specializations - •
struct.*{- Struct definition patterns
Files to Reference
- •
sys/linux/socket.txt- Network types (ifreq_t, sockaddr, etc.) - •
sys/linux/sys.txt- Basic syscall patterns - •
sys/linux/fs.txt- File operations