Migration to KernelGPT
May 12, 2025 ยท View on GitHub
1 Setup and Patch KernelGPT
cd /root/fuzzers
git clone https://github.com/google/syzkaller.git SyzGPT-KernelGPT-fuzzer
cd SyzGPT-KernelGPT-fuzzer && git checkout f1b6b00
patch -p1 < /root/SyzGPT/fuzzer/SyzGPT-fuzzer_for_f1b6b00.patch
cp /root/SyzGPT/experiments/KernelGPT/sys-linux-specifications/* /root/fuzzers/SyzGPT-KernelGPT-fuzzer/sys/linux/
make -j32
2 Syscall Dependency Extration for KernelGPT
# extract builtin_syscalls.json from SyzGPT-KernelGPT-fuzzer at -o dir
python /root/SyzGPT/extractor/parse_builtin_syscalls.py -s ~/fuzzers/SyzGPT-KernelGPT-fuzzer -o ~/SyzGPT/data/KernelGPT
3 Run KernelGPT for fuzzing
Just like run vanilla Syzkaller for fuzzing:
cd /root/fuzzers/SyzGPT-KernelGPT-fuzzer
taskset -c 0-7 ./bin/syz-manager -config cfgdir/Syzkaller.cfg -bench benchdir/Syzkaller.log -statcall -backup 24h
3 Run SyzGPT-KernelGPT for fuzzing
The workflow is similar to SyzGPT for fuzzing: run SyzGPT-KernelGPT-fuzzer first.
cd /root/fuzzers/SyzGPT-KernelGPT-fuzzer
taskset -c 8-15 ./bin/syz-manager -config cfgdir/SyzGPT.cfg -bench benchdir/SyzGPT.log -statcall -backup 24h -enrich WORKDIR/generated_corpus -period 1h -repair
And run SyzGPT-generator. The only difference is that a flag -K/--KGPT should be added to syzgpt_generator.py
cd /root/SyzGPT && workon syzgpt
python syzgpt_generator.py -s /root/fuzzers/SyzGPT-KernelGPT-fuzzer -w /root/fuzzers/SyzGPT-KernelGPT-fuzzer/workdir/v6-1/SyzGPT/generated_corpus -D 1h -T 1h -S 24h -m 100 -P 10 -K
# -K, --KGPT: add support for KernelGPT