American Fuzzy Lop和概念上相关的 LLVM libfuzzer不仅生成随机模糊字符串,而且还观察被测代码的分支覆盖率,并使用遗传算法尝试覆盖尽可能多的分支。这会增加下游更有趣代码的命中频率,否则大多数生成的输入将在某些反序列化或验证中提前停止。
但是这些工具在本机代码级别工作,这对 JavaScript 应用程序没有用,因为它会试图覆盖解释器,而不是真正的解释代码。
那么有没有办法通过覆盖率指导来模糊 JavaScript(最好在浏览器中,但在 node.js 中运行的测试也会有所帮助)?
我查看了这个老问题中提到的工具,但是那些做 javascript 的工具似乎没有提到任何关于覆盖率分析的内容。虽然radamsa提到可选择将其与覆盖分析配对,但我还没有找到任何有关如何实际执行此操作的文档。
一个带有覆盖指导的模糊测试java脚本(在浏览器中)应用程序如何?