Slither自动化测试智能合约并进行分类存储

这篇具有很好参考价值的文章主要介绍了Slither自动化测试智能合约并进行分类存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Slither是一个用Python 3编写的Solidity静态分析框架。它运行一套漏洞检测器,打印有关智能合约细节的可视化信息,并提供一个API来轻松编写自定义分析。Slither使开发人员能够发现漏洞,增强代码理解能力,并快速原型定制分析。 并且Slither相比较其他工具而言,最好的一个地方在于它的安装与使用都非常的简单,并且检测的效率很高。但是检测的准确率不算太高。

一、特点 

  • 检测具有低误报率的易受攻击的Solity代码
  • 识别源代码中错误条件发生的位置
  • 内置“打印机”快速报告关键合同信息
  • 能够分析以Solidity>=0.4编写的合约
  • 正确解析99.9%的所有公共Solidity代码
  • 每份合同的平均执行时间少于1秒

二、Slither的安装 

Slither安装首先需要Python版本在3.8以上,并且安装有solc。

1、可以通过pip3进行安装(推荐)

pip3 install slither-analyzer

2、使用git进行安装

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

python3 setup.py install

3、使用docker进行安装

docker pull trailofbits/eth-security-toolbox

docker run -it -v /home/share:/share trailofbits/eth-security-toolbox 

以上三种方法笔者推荐使用第一种方法,即使用pip3下载安装的方式,使用docker安装可能会显示各种错误 

三、使用Slither对合约进行检测

1、对整个文件夹下的.sol文件进行检测

slither .

2、对指定目录下的指定文件进行检测

slither tests/uninitialized.sol 

四、注意

配置solitidy版本的时候,查看可以下载的版本

solc-select versions

下载需要的solidity版本

solc-select install 0.4.25

使用所下载的solidity版本

solc-select use 0.4.25 

使用Slither来检测的时候需要根据合约的版本来选择不同的版本号,但是一般来说高版本的都可以用来检测低版本的(仅限于第二位相同),但是也有特殊的,例如0.5.8和0.5.7这两个都需要通过各自的版本单独检测

五、自动检测并分类存储

这边自动化检测的脚本与之前的Mythril的脚本类似,可以先去看那边的脚本解释,这边就不再多说文章来源地址https://www.toymoban.com/news/detail-658147.html

#!/bin/bash
 
######################################################################
##                                                                  ##
##   Slither自动测试智能合约并分类存储                                ##
##                                                                  ##
######################################################################
 
#递归遍历文件
function getdir(){
    for element in `ls $1`
    do  
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ]
        then 
            getdir $dir_or_file
        else
            #echo $1
            #echo $dir_or_file
            #查找文件扩展名为".sol"的文件
            check_suffix $element
            #在终端中输入基本语句
            cd /home
            cd /home/wjw
            cd /home/wjw/1
            cd /home/wjw/1/5
            cd /home/wjw/1/5/052
            
            
            #打开最终存储所需要检测智能合约的文件夹
            cd $1
            #利用工具slither来检测智能合约
            slither .
        fi  
    done
}
#查找文件扩展名为".sol"的文件
check_suffix()
{
    file=$1
    
    if [ "${file##*.}"x = "sol"x ];then
        echo $file
    fi    
}
 
 
root_dir="/home/wjw/1/5/052"
getdir $root_dir

到了这里,关于Slither自动化测试智能合约并进行分类存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(120)
  • 使用Postman进行接口自动化测试

    我们先思考一下,如果需要达到自动化接口测试的效果,那么我们在基本的模拟请求上还需要做哪些呢? 以下我粗略概括为 3 个问题(欢迎更多补充与建议): 如何判断接口是否请求成功 如何进行接口批量、定期测试 如何处理依赖接口问题(比如商品下单的接口必须要求

    2024年01月18日
    浏览(56)
  • 使用phpunit进行接口自动化测试

    年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。 1.安装 在php的目录下 1 2 pear channel-discover pear; pear install phpunit/PHPUnit 2.配置 首先新建一个lib文件夹存放的配

    2024年01月20日
    浏览(45)
  • 使用ApiPost进行接口自动化测试

    自动化测试模块是针对测试人员的复杂业务的测试服务。可以在测试用例中建立一个或多个“测试计划”,“测试计划”由接口和控制器组成。 1、创建步骤 1、在API设计或API调试内保存接口。 2、打开自动化测试-测试用例,新建一个测试计划。 3、在右侧的API添加器内添加接

    2024年02月05日
    浏览(46)
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)

    本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!! 对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天我们重点聊一下,如何使用AirtestIDE驱动Firef

    2024年02月07日
    浏览(40)
  • 【教程】JAVA + selenium 进行自动化测试

    自动登录淘宝 获取请求响应数据等 使用到的工具类

    2024年02月11日
    浏览(41)
  • 怎样开始用selenium进行自动化测试?

    如果您刚开始使用 Selenium 进行自动化测试,以下是建议的步骤。 1、安装 Selenium 首先,您需要安装 Selenium。Selenium 支持多种编程语言,如 Python、Java、C# 等。可以通过 pip 命令在 Python 中安装 Selenium: 2、选择合适的浏览器和驱动程序 Selenium 可以控制多种浏览器,如 Chrome、F

    2024年02月10日
    浏览(40)
  • 【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,学习模拟鼠标+模拟键盘进行相关操作(精)(四)

    1、了解元素交互的常用方法 2、学习如何对多选元素进行操作 3、 学习模拟鼠标进行相关操作 ( 本节目标 ) 4、 学习模拟键盘进行相关操作 ( 本节目标 ) 用于向 Web 浏览器提供虚拟化设备输入操作的低级接口.除了刚刚讲过的Web元素交互之外, Actions 接口 还提供了对指定输

    2024年03月24日
    浏览(84)
  • 怎样在iOS手机上进行自动化测试

    Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后还可以提供给同一局域网内的windows上远程连接使用。同时支持airtest图

    2024年02月04日
    浏览(39)
  • 如何在iOS手机上进行自动化测试

    🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手

    2024年02月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包