工具简介

Slither 是一个 python3 开发,用于检测智能合约(solidity)漏洞的静态分析框架。

Slither 的 Github 地址:https://github.com/crytic/slither

工具安装

它有三种安装方式(pip, git, docker),我们为了方便,采用docker进行安装。因为工具包 Ethereum Security Toolbox 中包括了 Slither 工具,所以我们直接通过安装工具包 Ethereum Security Toolbox 的 docker 来获取 Slither。

智能合约工具箱docker安装:https://github.com/crytic/eth-security-toolbox

安装指令

docker pull trailofbits/eth-security-toolbox

构建docker

docker run -it -v <local path>:<docker path> trailofbits/eth-security-toolbox

// example
docker run -it -v F:\contracts:/contracts trailofbits/eth-security-toolbox

这行指令的作用是启动docker,其中 -v是指将本地的磁盘目录映射到docker中。

  1. local path:本地磁盘目录
  2. docker path:映射到docker中的目录
  3. trailofbits/eth-security-toolbox:docker名称

查看映射目录

ethsec@560c87507f28:~$ cd /
ethsec@560c87507f28:/$ ls
contracts bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
ethsec@560c87507f28:/$ cd contracts/
ethsec@560c87507f28:/contracts$ ls
constant contracts decode migrations package.json readme.md scripts test truffle-config.js

使用

在 Truffle/Embark/Dapp/Etherlime/Hardhat 项目上使用 Slither

slither .

在单个文件上上使用 Slither

slither tests/uninitialized.sol

可配合solc-select进行solc版本的选择。

后记

截至 21.6.3 为止,Slither支持的solc最高版本是0.7.4,很不幸我想分析的合约是0.8.x的。也尝试了一下自己在docker里面更新solc,但提示权限不足失败告终。无能狂怒只能提个issue祈祷一下开发者尽快更新0.8.x版本吧。然后,也看了其他的几个漏扫,但是好像都不支持0.8.x版本的合约,迷茫的阿菜该何去何从。

【阿菜用工具】Slither:Solidity静态分析框架的更多相关文章

  1. Hades:移动端静态分析框架

    只有通过别人的眼睛,才能真正地了解自己 ——<云图> 背景 作为全球最大的互联网 + 生活服务平台,美团点评近年来在业务上取得了飞速的发展.为支持业务的快速发展,移动研发团队规模也逐渐从零 ...

  2. .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)

     .NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  3. Python第三方常用工具、库、框架等

    Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...

  4. android码农神器 偷懒工具 android懒人框架 LoonAndroid 3 讲解

    LoonAndroid 3.0 Loonandroid是一个注解框架,不涉及任何UI效果,目的是一个功能一个方法,以方法为最小颗粒度对功能进行拆解.把功能傻瓜化,简单化,去掉重复性的代码,隐藏复杂的实 ...

  5. [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)

    阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时 ...

  6. Python3漏洞扫描工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents README Guide Change Log TODO ...

  7. 基于Python3的漏洞检测工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...

  8. 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支

    WeTest 导读 GAutomator是腾讯WeTest推出的手游自动化测试框架,已用于腾讯多个手游项目组的自动化测试. 1.GAutomator诞生背后 研究过手游自动化测试的同学都知道,虽然市场 ...

  9. sqlite表结构动态读取工具(Chole ORM框架)

    Chole ORM框架 sqlIte于嵌入式数据库读取比较有利,不需要安装office也可以进行,可以在服务器系统当中使用. 所以我开发了这款工具,然后就是为了动态的读取表结构,然后根据表结构加载所有 ...

随机推荐

  1. [非专业翻译] 高性能对象映射框架 - Mapster

    [非专业翻译] 高性能对象映射框架 - Mapster 系列介绍 [非专业翻译] 是对没有中文文档进行翻译的系列博客,文章由机翻和译者自己理解构成,和原文相比有所有不通,但意思基本一致. 因个人能力有 ...

  2. Bean初始化操作initMethod、@PostConstruct和InitializingBean

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 很多时间当一个Bean被创建出来后,我们希望做一些初始化操作,如初始化数据.缓存预热等.有以下三种方法: 初始化 ...

  3. kube-controller-manager源码分析-PV controller分析

    kubernetes ceph-csi分析目录导航 概述 kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD contr ...

  4. flex mx:TabNavigator进行选项卡切换,需要进行交互时。发生Error #1009错误

    当需要进行 mx:TabNavigator选项卡进行切换时,需要进行交互,然后却报了"TypeError: Error #1009: 无法访问空对象引用的属性或方法."错误,产生这 ...

  5. Nginx:Nginx配置url重定向

    符号含义: 正则表达式匹配: ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配: -f和!-f用来判断是否存在文件 -d和!-d用 ...

  6. php 扩展 rabbitmq popt

    首先是rabbitmq-c-master.tar.gz包, 可以访问https://github.com/alanxz/rabbitmq-c去下载最新的 wget https://github.com ...

  7. 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?

    报错主要部分如下: Error building SqlSession.### Cause: org.apache.ibatis.builder.BuilderException: Error cre ...

  8. HCNA Routing&Switching之动态路由协议RIP

    前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...

  9. c语言的自动类型转换(转)

    一.自动转换遵循以下规则: 若参与运算量的类型不同,则先转换成同一类型,然后进行运算. 转换按数据长度增加的方向进行,以保证精度不降低.如int型和long型运算时,先把int量转成long型后再进行 ...

  10. 续PA协商过程

    续PA协商过程 当sw3的接口恢复之后会发生2中情况. ①sw3的G0/0/2口先发BPDU ②sw3的G0/0/3口先发BPDU sw3先发送BPDU sw3和sw1的交互过程: sw3的2口恢复后 ...