工具简介

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. 札记:Fragment基础

    Fragment概述 在Fragment出现之前,Activity是app中界面的基本组成单位,值得一提的是,作为四大组件之一,它是需要"注册"的.组件的特性使得一个Activit ...

  2. SQL SERVER 简介及应用 - 数据库系统原理

    SQL SERVER 是一个分布式的关系型数据库管理系统(RDBMS),具有客户 - 服务器体系结构,一般发行的版本有企业版.标准版.个人版.开发版. SQL SERVER 提供的服务 MS SQL ...

  3. Javascript中递归造成的堆栈溢出及解决方案

    关于堆栈的溢出问题,在Javascript日常开发中很常见,Google了下,相关问题还是比较多的.本文旨在描述如何解决此类问题. 首先看一个实例(当然你可以使用更容易的方式实现,这里我们仅探讨递归) ...

  4. Union的妙用和注意

    对于Union我用的比较少,最近一段时间大多使用Lua,所以复习一下Union Union是共用体,顾名思义,公用一块内存 一块内存不同的访问方式 // 1.数组的便捷访问 // 一块内存两种等价的访 ...

  5. Spring Assert主张 (参议院检测工具的方法-主张)

    Web 收到申请表格提交的数据后都需要对其进行合法性检查,假设表单数据是不合法的,该请求将被拒绝.分类似的,当我们写的类方法,该方法还经常需要组合成参 法国检查.假设参议院不符合要求,方法通过抛出异常 ...

  6. JavaScript定时机制、以及浏览器渲染机制 浅谈

    昨晚,朋友拿了一道题问我: a.onclick = function(){ setTimeout(function() { //do something ... },0); }; JavaScript ...

  7. 微信小程序调用高德地图

    index.wxml: longitude:经度 latitude:维度 地图所定位的区域 index.js 地图所定位的点

  8. 解决Ubuntu无法通过ssh远程登录问题

    1.  安装 open ssh: sudo apt-get install ssh sudo apt-get install openssh-server 2. 编辑配置文件,允许以 root 用户通 ...

  9. Object的wait/notify/notifyAll&&Thread的sleep/yield/join/holdsLock

    一.wait/notify/notifyAll都是Object类的实例方法 1.wait方法:阻塞当前线程等待notify/notifyAll方法的唤醒,或等待超时后自动唤醒. wait等待其实是对象 ...

  10. spring 中AOP的基本知识点

    首先AOP就是一个动态代理,主要运用在事务控制,日志记录,安全控制等方面 1.连接点(Joinpoint):一个连接点 总是 代表一个方法的执行. 2.切入点(Pointcut):匹配连接点的 表达式 ...