SoftSec-KAIST/Smartian
GitHub: SoftSec-KAIST/Smartian
结合静态与动态数据流分析的以太坊智能合约灰盒模糊测试工具,用于高效发现合约安全漏洞。
Stars: 157 | Forks: 27
# 锤子手机
Smartian 是一个用于以太坊智能合约的灰盒模糊测试工具。Smartian 利用静态和动态数据流分析来提升模糊测试的有效性。
Smartian 的技术细节可参阅我们在 ASE 2021 上发表的论文 "Smartian: Enhancing Smart Contract Fuzzing with Static and Dynamic Data-Flow Analyses"。
# 安装说明
Smartian 使用 F# 编写,因此您需要安装 .NET 才能运行 Smartian。
每个 Linux 发行版的安装步骤各不相同,请参考此[链接](https://docs.microsoft.com/en-us/dotnet/core/install/)并安装 net5.0。然后,您可以按如下步骤简单地克隆并构建 Smartian。
```
$ git clone https://github.com/SoftSec-KAIST/Smartian
$ cd Smartian
$ git submodule update --init --recursive
$ make
```
# 使用说明
您可以通过提供智能合约的 EVM 字节码和 ABI 规范,使用 Smartian 对其进行模糊测试。其中,`-t` 选项指定以秒为单位的时间限制。输出的测试用例和触发漏洞的输入将存储在 `-o` 选项指定的目录中。
```
$ dotnet build/Smartian.dll fuzz -p -a -t
标签:ASE 2021, DNS重绑定攻击, EVM字节码, F#, 云安全监控, 以太坊, 区块链安全, 多人体追踪, 智能合约安全, 灰盒测试, 覆盖率引导, 重入攻击检测, 静态分析