【合约检测工具】使用 Slither 检测合约中的 “坏味道”

前言

在合约开发中,重中之重是合约的安全。在开发中,我时常会疑惑,除了自己写的单元测试,还有没有别的方法可以像 sonar 一样检测 solidity 中的 “坏味道” 呢?咱们不用收费的 MythX ,可以试一试简单易用,开源的 Slither。

Silther 安装

这里我个人建议使用 pip3 安装的方式,而不是使用 docker,一是因为 docker pull image 的时候拉去速度很慢,二是因为之后还要将镜像外的 workspace 映射到镜像里,觉得有些麻烦。

Step1

如果没有 pip3 包管理器,请先安装 python3.6+,这也是运行 slither 的必要条件。

brew install python3

安装好后,安装 slither

pip3 install slither-analyzer

git clone https://github.com/crytic/slither.git && cd slither

python3 setup.py install

Step2

打开 Solidity 工程根目录,运行

slither .

就可以检查项目中所有合约以及所有依赖的坏味道。cmd 中会打印红黄绿三种颜色的,红色是特别建议修改的,但是提示也不一定准确,需要分析每一处 vulnerable code 是否真的有问题,再决定是否修改。

可能遇到的问题

  1. 找不到合约
    原因有可能是之前用到的依赖合约现在不用了,导致 node_modules 里面没有合约,但是artifact 里有编译后的 link 文件。
    所以清理根目录中 artifact 文件夹,把之前生成的 link 文件删掉就好了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能合约漏洞检测工具是用于检测智能合约潜在漏洞的软件工具。目前市场上有多种智能合约漏洞检测工具,包括但不限于:Mythril、SmartCheck、Securify、Oyente、Solhint、Slither等。下面对这些工具进行简要分析和比较: 1. Mythril:一种基于Python的智能合约漏洞检测工具,可以自动检测以太坊智能合约的漏洞。Mythril使用静态分析技术来检测合约的漏洞,并支持多种漏洞类型的检测。 2. SmartCheck:一种基于Solidity的智能合约漏洞检测工具使用了一种基于符号执行的技术来检测合约的漏洞。SmartCheck还支持自定义规则和插件。 3. Securify:一种基于静态分析的智能合约漏洞检测工具,支持检测多种漏洞类型。Securify使用了一种基于抽象解释的方法来检测合约的漏洞。 4. Oyente:一种基于Python的智能合约漏洞检测工具使用了一种基于符号执行的技术来检测合约的漏洞。Oyente支持多种漏洞类型的检测,并提供了一种基于可视化的方式来展示检测结果。 5. Solhint:一种用于Solidity代码规范检查的工具,可以检查合约的代码是否符合Solidity代码规范。Solhint支持多种代码规范,并可以自定义规范。 6. Slither:一种基于静态分析的智能合约漏洞检测工具,支持多种漏洞类型的检测Slither使用了一种基于数据流分析的方法来检测合约的漏洞。 综上所述,不同的智能合约漏洞检测工具使用了不同的技术和方法来检测合约的漏洞,每种工具都有其独特的优势和劣势。在选择合适的工具时,需要根据具体的需求和场景进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值