二 Syzkaller学习笔记---更新syz-manager

学习笔记源码阅读笔记-1 syz- 参考源码阅读笔记-2 启动Fuzz参考
安装
先安装软件
sudo apt-get install debootstrapsudo apt install qemu-kvmsudo apt-get install subversionsudo apt-get install gitsudo apt-get install makesudo apt-get install qemusudo apt install libssl-dev libelf-devsudo apt-get install flex bison libc6-dev libc6-dev-i386 linux-libc-dev linux-libc-dev:i386 libgmp3-dev libmpfr-dev libmpc-devapt-get install g++apt-get install build-essentialapt install gcc
安装go
add-apt-repository ppa:longsleep/golang-backportsapt-get updatesudo apt-get install golang-go//go的版本为1.19
然后设置
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
然后go get源代码
go get -u -d github.com/google/syzkaller/prog
进入后进行编译
发现报错,
dmesg | egrep -i -B100 'killed process'执行命令 发现 OOM-Killer
重新分配,16G,编译成功
当然也可以 建立swap分区
编译完成
文件系统
我们新建一个 image文件夹,下载-image.sh 但是
网络问题,我们手动下载
# 安装debootstrapsudo apt install debootstrap# 下载脚本wget https://raw.githubusercontent.com/google/syzkaller/master/tools/create-image.sh -O create-image.sh# 添加可执行权限chmod +x create-image.sh# 使用清华源,不然慢死了sed -i -e 's~sudo debootstrap .*~\0 https://mirrors.tuna.tsinghua.edu.cn/debian/~' create-image.sh# 制作镜像,1024MB./create-image.sh -s 1024
执行会有报错
由于windows系统下换行符为 \r\n,linux下换行符为 \n,所以导致在windows下编写的文件会比linux下多回车符号 \r 。只需要去掉多余的 \r 回车符 即可 。操作办法可以用sed命令进行全局替换sed 's/\r//' -i gen_cert.sh
内核
手动下载 或者wget
# 先采用默认配置make defconfig# 启用kvmmake kvmconfig# Syzkaller需要启用一些调试功能echo 'CONFIG_KCOV=yCONFIG_DEBUG_INFO=yCONFIG_KASAN=yCONFIG_KASAN_INLINE=yCONFIG_CONFIGFS_FS=yCONFIG_SECURITYFS=y' >> .config# 再次对新引入的配置采用默认值make olddefconfig
使用qemu进入测试,成功
【二Syzkaller学习笔记---更新syz-manager】root 密码空
qemu-system-x86_64 -m 1G \-enable-kvm \-drive file=/home/test/go/src/github.com/google/syzkaller/image/stretch.img,format=raw \-kernel ./linux-4.4.146/arch/x86/boot/bzImage \-append root=/dev/sda
我们在 中生成我们的cfg文件
{"target": "linux/amd64","http": "0.0.0.0:8080","workdir": "/home/test/go/src/github.com/google/syzkaller/bin/workdir","kernel_obj": "/home/test/桌面/cheche/kernel/linux-4.4.146/","image": "../image/stretch.img","sshkey": "../image/stretch.id_rsa","syzkaller": "/home/test/go/src/github.com/google/syzkaller","enable_syscalls": ["chmod"],"procs": 1,"type": "qemu","vm": {"count": 1,"kernel": "/home/test/桌面/cheche/kernel/linux-4.4.146/arch/x86/boot/bzImage","cpu": 1,"mem": 1024}}
./syz-manager -config 4.14.cfg -vv 10
字段的解释
https://github.com/google/syzkaller/blob/master/pkg/mgrconfig/config.go
挂代理 git 所有后 才能进行查看
git log --all | grep 搜索
git log查看的不全
我们搜索到之后
精确下载 某个版本
proxychains git clone -b ASB-2018-08-05_4.4 https://android.googlesource.com/kernel/common
安装多次之后终于下载成功
参考文献
赛兹卡勒/---64-.md at 大师 ·谷歌/ ·
/setup.md at· / ·
#%E5%B0%9D%E8%AF%95%E4%BB%8E0%E5%88%B01%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%%E8%BF%9B%E8%A1%%E5%86%85%E6%A0%B8%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98