VirtFuzz的err(未完待续?

哟哟哟,这不是err坑吗?踩!都给我狠狠地踩!
上链接!VirtFuzz
改个目录名吧,下载(或git)下来的目录改成 virtfuzz小写,不然后面的命令都是跑的小写还得自己改

那仨要求

先说我认为的结论,以下仨文件夹放哪都行,自己记住路径就好,对应改改就行

Patched QEMU(可以先看第二种方法

如下图,就这玩意
在这里插入图片描述
问题是什么呢?
就是红框的那个变量压根不知道,当然是可以根据自己下载的地方改改路径的,但没必要
virtfuzz/setup-scripts下有个 .sh 脚本,里面就有这个变量,而且命令内容完全一样
so,先确保自己有根目录权限,因为这个变量的值其实是 /bin,然后这个脚本是到 /opt里操作

cd virtfuzz/setup-scripts
chmod +x setup-qemu.sh
sudo ./setup-qemu.sh

当然也可以自己改命令(第二种方法

virtfuzz目录下执行这些命令

curl https://download.qemu.org/qemu-8.2.2.tar.xz -o qemu.tar.xz
tar xvJf qemu.tar.xz
mv qemu-8.2.2 qemu
cd qemu
patch -p1 < ../qemu-patch.patch
mkdir build
cd build
../configure --target-list=x86_64-softmmu
make -j$(nproc)

其实就是把红框中的那个变量去掉了
这样的好处是在最后运行的时候路径是自己知道的(配路径在后文

构建镜像

命令./create-image.sh -d stretch,报
I: Keyring file not available at /usr/share/keyrings/debian-archive-keyring.gpg; switching to https mirror https://deb.debian.org/debian
ls查看/usr/share/keyrings/
发现确实只有一个对应的.bak备份文件debian-archive-keyring.gpg.bak

sudo apt-get install debian-archive-keyring

好,为什么要解决这个呢?因为好看……吗?当然不是,不然后面的换版本也不会有效(我也不知道为啥

再试

还会报E: Failed release file https://deb.debian.org/debian/dists/stretch/release(大概是这样的,忘了截图,反正就是找不到的意思)

网站点进去也是not found,但是返回到https://deb.debian.org/debian/dists/就还是有的,不过只有buster及之后的Debian发行版本,其实旧版本都被搬到了https://archive.debian.org/debian/dists/

所以

要么找到换网址的配置文件(我没找到,各位大神发发力让我蹭蹭
要么就把stretch换成buster(写这个文章的时候buster还在https://deb.debian.org/debian/dists/里,所以可用,后面再更新之后就只能往后写更新的发行版本)

./create-image.sh -d buster

顺便

把virtfuzz/fuzz/src/main.rs的93行(没改的话,也差不多这个地方)的stretch.img改成buster.img(按发行版本改),然后改成绝对路径(相对路径也可以,不过好像每次运行挺麻烦的);
如果上面配qemu的时候用的是第一种方法,那就把qemu的路径改成/opt/qemu/build/qemu-system-x86_64(最好还是看看有没有这个文件
在这里插入图片描述

Patched Kernel

如下图,这是最后一个条件了(记得目录名改小写
在这里插入图片描述
看这点点杠(. ./)的意思……就是把linux放在virtfuzz外面呗,就它俩是同级目录
在这里插入图片描述
那么到这里,仨环境就配完了……吗?对……对吗?(官方快看看我,改改readme吧

运行?

试图开跑

分别到virtfuzz下的三个目录(对应三个命令,fuzz、proxy、replay)下cargo build一下,然后这仨生成的二进制程序都在virtfuzz/target/debug

算跑通了?

这俩命令一样的,请复制第二条并修改成自己的再运行,第一条用来看的(格式?

virtfuzz-fuzz --kernel /home/某某/linux/arch/x86/boot/bzImage \
--stages standard \
--device-definition /home/某某/virtfuzz/device-definitions/bluetooth.json
virtfuzz-fuzz --kernel /home/某某/linux/arch/x86/boot/bzImage --stages standard --device-definition /home/某某/virtfuzz/device-definitions/bluetooth.json

运行效果如图
声明一点哈,第一次跑全是0,而且跑出来之后终端会抽搐,打进去的命令都不见了,多运行几次(不杀进程的前提下,同一条命令,可以自信按上然后回车),就有点信息了,不过都是嗖的一下就过去了(至少我是这样,为啥跟我想象中的不一样啊,不是应该都仿一个AFL的界面吗
在这里插入图片描述

到这我也不知道是不是算成功了,emmm……再看看吧

官方的使用方法(跑不了一点,我崩了,来个神99

运行以下命令
在这里插入图片描述

报呗,跟谁没报过错似的

在这里插入图片描述
export KERNEL=你的那个跟virtfuzz同级的linux路径/arch/x86/boot/bzImage
在这里插入图片描述
export IMAGE=virtfuzz下的guestimages/buster.img的绝对路径(图有问题
者直接把guestimages目录复制到virtfuzz/target/debug里
在这里插入图片描述
export QEMU=/opt/qemu/build/qemu-system-x86_64
用用tab补全,我纯手打的不一定对主要是记录找不到了
还得再摸索摸索

注:我也不知道这样会不会有后续影响,等我跑完(跑完了吗,对……对吗?
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值