首页
社区
课程
招聘
[原创]使用libfuzzer对msvc编译的程序进行白盒fuzz
发表于: 2023-9-6 17:57 4271

[原创]使用libfuzzer对msvc编译的程序进行白盒fuzz

2023-9-6 17:57
4271

一、介绍

libfuzzer是llvm提供的工具之一,用于白盒fuzz,原理是编译插桩,写测试用例很方便,然而由于是llvm里的工具所以无法直接对msvc编译的程序使用。
经过反复踩坑,找到了使用libfuzzer对msvc编译的程序进行白盒fuzz的办法。

二、原理

添加一些编译选项,链接一些vs2019自带的asan、sancov、libfuzzer相关的链接库,其中我对libfuzzer库进行了一些修改,使其更好用一些。

三、使用限制

由于msvc和llvm的一些东西不兼容,所以目前限制还是很多的,首先由于asan更改了一些基础库的实现,所以项目必须用/MT进行编译,接着编译配置必须是RelWithDebInfo,最后编译选项LTCG必须关闭。

三、项目

https://github.com/TechForBad/WinMsvcLibfuzzer
里面包含一些fuzz示例。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-9-11 11:14 被TechForBad编辑 ,原因: 完善补充
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//