perimetersec/evm-fuzzing-resources

GitHub: perimetersec/evm-fuzzing-resources

Stars: 198 | Forks: 15

# EVM 模糊测试资源 本仓库提供了关于 EVM 模糊测试的资源集合。由 [Rappie](https://x.com/rappie_eth) 维护。 查看 [最近新增](recent.md) 以获取最新更新。 如果您对内容有任何建议,请随时在 X 上联系或提交 GitHub Issue。 ## 目录 1. [模糊测试软件](#fuzzing-software) 2. [工具](#tooling) 3. [实用代码示例](#practical-code-samples) 4. [可复用属性](#reusable-properties) 5. [文章](#articles) 6. [视频](#videos) 7. [模糊测试背景](#fuzzing-background) ## 模糊测试软件 ### 主流模糊测试器 - [Echidna](https://github.com/crytic/echidna) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [Medusa](https://github.com/crytic/medusa) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [Foundry](https://github.com/foundry-rs/foundry) 由 [Paradigm](https://x.com/paradigm) 开发 ### 新兴/专用模糊测试器 - [ItyFuzz](https://github.com/fuzzland/ityfuzz) 由 [fuzzland](https://x.com/fuzzland_) 开发 - [Wake](https://github.com/Ackee-Blockchain/wake) 由 [Ackee](https://x.com/AckeeBlockchain) 开发 ## 工具 ### 库与框架 - [Chimera](https://github.com/Recon-Fuzz/chimera) - 智能合约基于属性的测试框架,由 [Recon](https://x.com/getreconxyz) 开发 - [Fuzzlib](https://github.com/perimetersec/fuzzlib) - Solidity 模糊测试库,由 [Perimeter](https://x.com/perimeter_sec) 开发 - [Arachne](https://github.com/perimetersec/arachne) - 大规模模糊测试套件的脚手架框架,由 [Perimeter](https://x.com/perimeter_sec) 开发 - [Universal Fuzzing](https://github.com/GuardianOrg/UniversalFuzzing) - Echidna 模糊测试模板,由 [Guardian Audits](https://x.com/GuardianAudits) 开发 - [Medusa Template Generator](https://crates.io/crates/medusa-gen) - 遵循 Wonderland 用法生成 Medusa 测试活动的一组合约,由 [Wonderland](https://x.com/DeFi_Wonderland) 开发 ### 实用工具 - [fuzz-utils](https://github.com/crytic/fuzz-utils) - 一套 Python 工具,用于改善智能合约模糊测试的开发者体验,由 [Trail of Bits](https://x.com/trailofbits) 开发 - [CloudExec](https://github.com/crytic/cloudexec) - 基于云的模糊测试通用基础平台,由 [Trail of Bits](https://x.com/trailofbits) 开发 - [Echidna Coverage Reporter](https://github.com/Simon-Busch/echidna-coverage) - 用于解析和分析 Solidity 智能合约 Echidna 代码覆盖率报告的 TypeScript 工具,由 [0xsi](https://x.com/_0xsi) 开发 - [echidna-trace-parser](https://github.com/Enigma-Dark/echidna-trace-parser) - 将 Echidna 调用跟踪转换为 Foundry PoC 测试的解析器,由 [Enigma Dark](https://x.com/EnigmadarkLabs) 开发 - [Recon VS Code Extension](https://github.com/Recon-Fuzz/recon-extension) - 无缝集成 Foundry、Medusa 和 Echidna,由 [Recon](https://x.com/getreconxyz) 开发 - [Runes](https://github.com/Enigma-Dark/runes) - 将 Echidna 模糊测试复现文件转换为可执行 Foundry 测试文件的 CLI 工具,由 [Enigma Dark](https://x.com/EnigmadarkLabs) 开发 - [Echidna Logs Scraper](https://getrecon.xyz/tools/echidna) - 抓取 Echidna 日志中损坏属性的复现信息,由 [Recon](https://x.com/getreconxyz) 开发 - [Youdusa](https://crates.io/crates/youdusa) - 为失败的 Medusa 调用序列生成 Foundry 测试,由 [Wonderland](https://x.com/DeFi_Wonderland) 开发 ## 实用代码示例 - [公开模糊测试活动列表](https://github.com/perimetersec/public-fuzzing-campaigns-list) 由 [Rappie](https://x.com/rappie_eth) 整理 - [基于属性的测试基准](https://github.com/aviggiano/property-based-testing-benchmark) 由 [Antonio Viggiano](https://x.com/agfviggiano) 整理 - [Solidity 模糊测试挑战:Foundry vs Echidna vs Medusa(以及 Halmos & Certora)](https://github.com/devdacian/solidity-fuzzing-comparison) 由 [Dacian](https://x.com/DevDacian) 整理 - [模糊测试器 Gas 指标基准](https://github.com/rappie/fuzzer-gas-metric-benchmark) 由 [Rappie](https://x.com/rappie_eth) 整理 - [使用 Echidna 链上模糊测试复现 2023 年 7 月 30 日的 4100 万美元 Curve 重入攻击](https://github.com/rappie/echidna-curve-reentrancy-hack) 由 [Rappie](https://x.com/rappie_eth) 整理 - [使用 Echidna 链上模糊测试复现 2022 年 4 月 30 日的 8000 万美元 Rari Finance 黑客攻击](https://github.com/rappie/echidna-rari-hack) 由 [Rappie](https://x.com/rappie_eth) 整理 ## 可复用属性 - [ERC20](https://github.com/crytic/properties?tab=readme-ov-file#erc20-tests) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [ERC721](https://github.com/crytic/properties?tab=readme-ov-file#erc721-tests) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [ERC4626](https://github.com/crytic/properties?tab=readme-ov-file#erc4626-tests) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [ERC7540](https://github.com/Recon-Fuzz/erc7540-reusable-properties) 由 [Recon](https://x.com/getreconxyz) 开发 - [ABDKMath64x64](https://github.com/crytic/properties?tab=readme-ov-file#abdkmath64x64-tests) 由 [Trail of Bits](https://x.com/trailofbits) 开发 - [ERCx Token Test Library](https://github.com/runtimeverification/ercx-tests) - 针对多种 ERC 代币标准的可复用 Foundry 测试集合,由 [Runtime Vеrification](https://x.com/rv_inc) 开发 ## 文章 ### 教程与指南 - [Echidna 教程](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/echidna) 由 [Trail of Bits](https://x.com/trailofbits) 发布 - [Medusa 官方文档](https://secure-contracts.com/program-analysis/medusa/docs/src/index.html) 由 [Trail of Bits](https://x.com/trailofbits) 发布 - [Foundry 不变性测试官方文档](https://book.getfoundry.sh/forge/invariant-testing) - [使用 Foundry 进行 WETH 不变性测试](https://mirror.xyz/horsefacts.eth/Jex2YVaO65dda6zEyfM_-DXlXhOWCAoSpOx5PLocYgw) 由 [horsefacts](https://x.com/eth_call) 发布 - [模糊测试入门](https://allthingsfuzzy.substack.com/p/introduction-to-fuzzing) 由 [bloqarl](https://x.com/TheBlockChainer) 发布 - [模糊测试的优势](https://github.com/perimetersec/resources/blob/main/services/Benefits%20of%20Fuzzing.md) 由 [Perimeter](https://x.com/perimeter_sec) 发布 - [为 AMM 智能合约创建不变性测试](https://allthingsfuzzy.substack.com/p/creating-invariant-tests-for-an-amm) 由 [bloqarl](https://x.com/TheBlockChainer) 发布 - [调试 Echidna 覆盖率](https://allthingsfuzzy.substack.com/p/debugging-echidna-coverage) 由 [nican0r](https://x.com/nican0r) 发布 - [不变性学校的第一天](https://getrecon.substack.com/p/first-day-at-invariant-school) 由 [nican0r](https://x.com/nican0r) 发布 - [从失败的有状态不变性测试生成单元测试](https://allthingsfuzzy.substack.com/p/generating-unit-tests-from-broken) 由 [nican0r](https://x.com/nican0r) 和 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [利用不变性测试大规模发现拒绝服务漏洞](https://allthingsfuzzy.substack.com/p/finding-denial-of-service-bugs-at) 由 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [使用 Echidna 测试智能合约库](https://blog.trailofbits.com/2020/08/17/using-echidna-to-test-a-smart-contract-library/) 由 [Trail of Bits](https://x.com/trailofbits) 发布 - [如何定义不变性](https://getrecon.substack.com/p/how-to-define-invariants) 由 [nican0r](https://x.com/nican0r) 发布 - [实现你的第一个智能合约不变性:实用指南](https://getrecon.substack.com/p/implementing-your-first-few-invariants) 由 [nican0r](https://x.com/nican0r) 发布 - [轻松使用 3 种模糊测试器的 10 个步骤](https://x.com/DevDacian/status/1733009929508917499) 由 [Dacian](https://x.com/DevDacian) 发布 - [介绍 Create Chimera App V2](https://getrecon.substack.com/p/introducing-create-chimera-app-v2?r=34r2zr) 由 [nican0r](https://x.com/nican0r) 发布 - [使用 Chimera 的高级模糊测试技巧](https://book.getrecon.xyz/extra/advanced.html) 由 [Recon](https://x.com/getreconxyz) 发布 - [通过模糊测试利用精度丢失漏洞](https://dacian.me/exploiting-precision-loss-via-fuzz-testing) 由 [Dacian](https://x.com/DevDacian) 发布 ### 研究与背景 - [对 Badger DAO 的 eBTC 协议进行 6 周模糊测试的经验总结](https://allthingsfuzzy.substack.com/p/learnings-from-6-weeks-of-fuzzing) 由 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [构建健壮不变性指南](https://allthingsfuzzy.substack.com/p/a-guide-to-crafting-robust-invariants) 由 [Web3Sec News](https://substack.com/@web3secnews) 和 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [Certora vs Echidna:eBTC 不变性测试案例研究](https://allthingsfuzzy.substack.com/p/certora-vs-echidna-a-case-study-on) 由 [nican0r](https://x.com/nican0r) 发布 - [Uniswap v3:模糊测试回顾](https://allthingsfuzzy.substack.com/p/uniswap-v3-a-fuzzing-review) 由 [nican0r](https://x.com/nican0r) 发布 - 模糊测试 Centrifuge 协议的经验教训 [第一部分](https://getrecon.substack.com/p/lessons-learned-from-fuzzing-centrifuge) 和 [第二部分](https://getrecon.substack.com/p/lessons-learned-from-fuzzing-centrifuge-059) 由 [nican0r](https://x.com/nican0r) 发布 - [eBTC 回顾:对 eBTC 扩展模糊测试经验教训的反思](https://getrecon.substack.com/p/ebtc-retrospective) 由 [nican0r](https://x.com/nican0r) 发布 - [模糊测试战壕中的经验教训](https://getrecon.substack.com/p/lessons-from-the-fuzzing-trenches) 由 [nican0r](https://x.com/nican0r) 发布 - [通过 Renzo 模糊测试仓库发现真实漏洞](https://getrecon.substack.com/p/finding-real-vulnerabilities-with) 由 [nican0r](https://x.com/nican0r) 发布 - [云端模糊测试:Solidity 合约云端模糊测试方案综述](https://getrecon.substack.com/p/fuzzing-in-the-cloud) 由 [nican0r](https://x.com/nican0r) 发布 - [Corn 项目回顾:参与 Corn 协议模糊测试的经验教训](https://getrecon.substack.com/p/corn-engagement-retrospective) 由 [nican0r](https://x.com/nican0r) 发布 - [模糊测试与形式化验证讨论](https://x.com/0xScourgedev/status/1824122421844025622) 由 [0xScourgedev](https://x.com/0xScourgedev) 和 [Certora](https://x.com/CertoraInc) 发布 - [手动引导的模糊测试:智能合约测试的新方法](https://ackee.xyz/blog/introducing-manually-guided-fuzzing-a-new-approach-in-smart-contract-testing/) 由 [Josef Gattermayer](https://x.com/jgattermayer) 发布 - [不变性驱动开发的呼吁](https://blog.trailofbits.com/2025/02/12/the-call-for-invariant-driven-development/) 由 [Josselin Feist](https://x.com/Montyly) 发布 - [为什么经过审计的项目仍被黑客攻击以及如何避免(不变性篇)](https://guardianaudits.notion.site/Why-Audited-Projects-Are-Getting-Hacked-How-To-Avoid-It-Invariants-1d78bda5828c804fb1c1c2263ab5766a) 由 [Guardian Audits](https://x.com/GuardianAudits) 发布 - [被遗漏的漏洞 —— 如何通过对前置条件的模糊测试发现高危漏洞](https://getrecon.substack.com/p/the-bug-that-was-missed) 由 [nican0r](https://x.com/nican0r) 发布 ## 视频 ### 教程与指南 - [学习如何像专家一样进行模糊测试](https://www.youtube.com/playlist?list=PLciHOL_J7Iwqdja9UH4ZzE8dP1IxtsBXI) - 模糊测试研讨会,由 [Trail of Bits](https://x.com/trailofbits) 发布 - [面向安全研究人员的模糊测试](https://www.youtube.com/watch?v=3A7aa5B8aak) 由 [Alex the Entreprenerd](https://x.com/GalloDaSballo) 发布 - 模糊测试入门,Foundry、Echidna 和 Medusa 介绍,由 [bloqarl](https://x.com/TheBlockChainer) 发布 - [第一部分](https://www.youtube.com/watch?v=xLGTd5OH8xU)、[第二部分](https://www.youtube.com/watch?v=dWyJq8KGATg)、[第三部分](https://www.youtube.com/watch?v=yUC3qzZlCkY)、[第四部分](https://www.youtube.com/watch?v=em8xXB9RHi4)、[第五部分](https://www.youtube.com/watch?v=I4MP-KXJE54)、[第六部分](https://www.youtube.com/watch?v=SSzh5GlqteI) - [使用 Foundry 进行 WETH 不变性测试](https://www.youtube.com/watch?v=sJpL21yJpgs) 由 [horsefacts](https://x.com/eth_call) 发布 - [不变性驱动开发 —— 使用不变性作为安全网构建 CDP 系统](https://youtu.be/ZM6479HeI5U?si=7Zlbq8Ao4y1sFtSw) 由 [Alex the Entreprenerd](https://x.com/GalloDaSballo) 发布 - [Wake 框架 —— 以太坊工具的瑞士军刀](https://www.youtube.com/watch?v=sckN41TgRFY) 由 [Michal Převrátil](https://x.com/michprev) 发布 ### 演讲与讨论 - [与 @devdacian 谈模糊测试与启发式算法](https://www.youtube.com/watch?v=IZTvXfC14Ig),由 [Cyfrin Audits](https://x.com/CyfrinAudits) 发布 - [像 Degen 一样模糊测试:构建智能合约模糊测试器](https://youtu.be/qdtQ9k3gCX8?si=AquZxyikCZJwRaU5) 由 [alpharush](https://x.com/0xalpharush) 发布 - [与 Victor Martinez 聊模糊测试的一切](https://youtu.be/83q14K-WNKM?si=ez3uZRBvm-3iksFT) 由 [vnmrtz.eth](https://x.com/vn_martinez_) 发布 - [高级模糊测试技术:eBTC 例研究](https://youtu.be/ELY_zjIAKuE?si=1CfWOLuRaeTwQVT2) 由 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [不变性测试研讨会](https://youtu.be/YAF79t_Sfiw?si=AhJ-0pepG6-P_Ux8) 由 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [Víctor Martinez 的 Euler v2 模糊测试研讨会](https://youtu.be/WO3Xu7E4Tdg?si=MuQ1LJERLjRc8Pdc) 由 [vnmrtz.eth](https://x.com/vn_martinez_) 发布 - [Size Credit 模糊测试研讨会](https://youtu.be/tShSMDVoBf8?si=wztKs7dO7mCWfiXq) 由 [Antonio Viggiano](https://x.com/agfviggiano) 发布 - [测试你的测试:测试的注意事项](https://www.youtube.com/watch?v=7TcnUZGuk_s) 由 [phaze](https://x.com/lovethewired) 发布 - [利用不变性模糊测试发现高危漏洞](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=15s) 由 [Dacian](https://x.com/DevDacian) 发布 - [向 Medusa 提交你的第一个 PR](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=3855s) 由 [Josselin Feist](https://x.com/Montyly) 发布 - [一窥不变性测试的未来](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=5627s) 由 [Alex the Entreprenerd](https://x.com/GalloDaSballo) 发布 - [你或许应该进行模糊测试](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=6565s) 由 [Daniel Von Fange](https://x.com/danielvf) 发布 - [Echidna 让我这么做!](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=8030s) 由 [Alex the Entreprenerd](https://x.com/GalloDaSballo) 发布 - [Uniswap V4:将不变性测试带入人工审查无法触及的领域](https://www.youtube.com/watch?v=Cqmu-mhSLt8&t=8991s) 由 [Benjamin Samuels](https://x.com/thebensams) 发布 - [模糊测试的功效](https://www.youtube.com/watch?v=BBw_odMWFOI) 由 [Kris RenZo](https://x.com/KrisRenzo) 发布 - [通过模糊测试发现隐藏的 Bug](https://www.youtube.com/watch?v=GZTWKxgmGM8) 由 [Andrey Babushkin](https://x.com/technoBabushka) 发布 - [不变性测试 —— DeFi 协议模糊测试](https://www.youtube.com/watch?v=FpDlI4hXRxE) 由 [vnmrtz.eth](https://x.com/vn_martinez_) 发布 ## 模糊测试背景 - [模糊测试书](https://www.fuzzingbook.org/) - 生成软件测试的工具与技术,由 [多位作者](https://x.com/FuzzingBook) 编写 - [Awesome Fuzzing](https://github.com/secfigo/Awesome-Fuzzing) - 学习模糊测试的资源精选列表,由 [Mohammed A. Imran](https://x.com/secfigo) 整理
标签:DNS解析, Echidna, EVM, Foundry, Fuzzing, Medusa, Solidity, Web3安全, 以太坊, 区块链安全, 可视化界面, 安全测试, 开源项目, 技术文档, 攻击性安全, 智能合约审计, 测试框架, 逆向工具