libFuzzer如何应用到实际项目中?

问题描述 投票:0回答:0

我已经阅读了许多关于使用 libFuzzer(以及其他模糊测试引擎)进行模糊测试的教程。 但是他们都只是举了一个非常简单的例子来展示引擎的能力。
让我们以libFuzzer为例:我只需要编写一个回调函数(fuzz目标):

extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
  DoSomethingInterestingWithMyAPI(Data, Size);
  return 0;
}

示例运行良好。那么,另一个问题出现了:如何将这个库应用到实际项目中?

  1. 是否必须对项目中的所有功能进行模糊测试?
  2. 刚才提到的文档只对一个模糊目标进行模糊测试。如果我想对更多功能进行模糊测试,我是否必须构建许多二进制文件,每个二进制文件都针对每个模糊测试目标?
  3. 选择模糊测试目标的标准是什么?
llvm fuzzing fuzzer libfuzzer
© www.soinside.com 2019 - 2024. All rights reserved.