文章作者创建了一个流程图,用于指导读者选择合适的模糊测试工具。作者推荐针对有状态模糊测试,默认使用Echidna和Medusa;针对无状态模糊测试,选择Foundry。同时还讨论了Slither在模糊测试中的作用,以及ffi和链上模糊测试的工具选择。
你应该使用哪个模糊测试器?人们经常问我这个问题,为了用于他们的代码库,我创建了一个方便的流程图来回答这个问题!以下是我的建议背后的原因:
有状态模糊测试:默认情况下使用 Echidna 和 Medusa。它们是最可靠的,并且具有不同的启发式方法,这意味着一个可能会发现另一个遗漏的问题。
无状态模糊测试:Foundry 是最好的选择,因为它具有强大的支持和无缝集成到 Foundry 测试套件中。
Slither 是 OP:Echidna 在很大程度上依赖 Slither 来生成值。没有它,就像使用装了空弹匣的机关枪一样。另一方面,Medusa 被设计为独立于 Slither 工作,但现在支持它来生成值。
ffi 破坏覆盖率:当在其他语言中使用 ffi 时,模糊测试器在覆盖率引导的模糊测试中会遇到困难。在这些情况下,优先考虑 Medusa 和 Foundry 的速度更为有效。
链上模糊测试:目前还不完全推荐 Medusa,因为它仍处于实验阶段,但这可能很快会改变!
这些建议是当前的,但可能会在不久的将来随着新的更新而改变。例如,Medusa 刚刚达到了 v1.0.0 的里程碑。
请告诉我你是否同意或不同意!
PS:没有介绍其他模糊测试器,如 ItyFuzz 和 Wake,因为我还没有亲自尝试过它们,无法给出明确的意见。
- 原文链接: x.com/0xScourgedev/statu...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!