go环境配置
具体参考
1 | https://golang.org/doc/install |
以我当时为例
1 | wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz |
其他注意事项:
go1.16以后,默认需要提供go.mod,我们可以设置环境变量GO111MODULE为auto让其自动
1 | go env -w GO111MODULE=auto |
例子实践
源码:
1 | $ cat png.go |
在文件目录执行go-fuzz-build,就会生成png-fuzz.zip
之后直接运行go-fuzz命令即可
1 | $ go-fuzz |
不过最好指定一下输出路径:
1 | go-fuzz -workdir output |
还有一种是以libfuzzer的支持
1 | go-fuzz-build -libfuzzer -o png.a |
之后把png.libfuzzer运行就可以了
1 | $ ./png.libfuzzer |
当然是用corpus会有更好的覆盖率,corpus可以从github.com/dvyukov/go-fuzz-corpus获取
1 | $ ./png.libfuzzer ./go-fuzz-corpus/png/corpus/ |
假如要fuzz gif,改成下面即可,其他图片库类似
1 | package gif |