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安全, 云安全监控, 代码生成, 以太坊, 区块链安全, 变异测试, 属性测试, 并行计算, 日志审计, 智能合约安全, 渗透测试工具, 程序破解, 覆盖率引导, 静态分析