crytic/medusa

GitHub: crytic/medusa

Medusa 是一款基于 go-ethereum 的并行化 Solidity 智能合约模糊测试工具,通过覆盖率引导和变异测试帮助发现智能合约中的安全漏洞。

Stars: 456 | Forks: 83

# 美杜莎 `medusa` 是一个跨平台的、基于 [go-ethereum](https://github.com/ethereum/go-ethereum/) 的智能合约模糊测试工具,其灵感来源于 [Echidna](https://github.com/crytic/echidna)。 它通过命令行界面 (CLI) 或其 Go API 提供并行化的智能合约模糊测试,Go API 允许用户自定义扩展测试方法。 **免责声明**:Go 级别的测试 API 仍**处于开发阶段**,可能会发生破坏性变更。 ## 功能特性 `medusa` 提供以下支持: - ✔️**并行模糊测试与测试**:跨多个工作线程 的测试方法 - ✔️**断言与属性测试**:内置支持编写基本的 Solidity 属性测试和断言测试 - ✔️**变异值生成**:由编译和运行时数值供给。 - ✔️**覆盖率收集**:增加覆盖率的调用序列被存储在语料库中 - ✔️**覆盖率引导的模糊测试**:语料库中增加覆盖率的调用序列经过变异,以进一步引导模糊测试活动 - ✔️**可扩展的低级测试 API**:通过模糊测试器、工作线程和测试链中提供的事件和钩子实现。 - ❌ **可扩展的高级测试 API**:允许以最小的代价添加针对每个合约或全局的调用后/事件属性测试。 ## 文档 欲了解更多关于如何安装和使用 `medusa` 的信息,请参阅我们的[文档](./docs/src/SUMMARY.md)。 为了获得更好的阅读体验,我们建议您安装 [mdbook](https://rust-lang.github.io/mdBook/guide/installation.html) 然后在 medusa 的源代码目录中运行以下步骤: ``` cd docs mdbook serve ``` ## 安装 运行以下命令以安装最新版本的 `medusa`: ``` go install github.com/crytic/medusa@latest ``` 有关从源代码构建、使用包管理器或获取 Windows 和 Linux 二进制文件的更多信息, 请参阅[安装指南](./docs/src/getting_started/installation.md)。 ## 贡献 有关如何为本项目做出贡献的信息,请查看 [CONTRIBUTING](./CONTRIBUTING.md) 指南。 ## 许可证 `medusa` 根据 [AGPLv3](./LICENSE) 获得许可并分发。
标签:Echidna替代, EVM, EVTX分析, EVTX分析, Fuzzing, go-ethereum, Go语言, Medusa, Solidity, Web3安全, 云安全监控, 代码生成, 以太坊, 区块链安全, 变异测试, 属性测试, 并行计算, 日志审计, 智能合约安全, 渗透测试工具, 程序破解, 覆盖率引导, 静态分析