oyente—合约漏洞检测工具安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

区块链是近几年来大热的项目,但是国内有关的文献文档却少之又少,最近学长让安装一个叫oyente的合约检测工具,笑死根本找不到教程,上官方github看看安装方法,用渣英文翻译记录下来,顺便几一些坑分享给之后有需要的人。
在本文中,我将演示如何在有docker和没有docker的情况下安装和使用Oyente。
同时这个是针对有一定基础的教程,如果连docker和linux之类的都没有安装的话,建议去搜搜,这些目前在国内资源很多,随便都能搜到。
贴上参考资料这里这里这里需要科学上网。


一、oyente是什么?

区块链交易通常采用加密货币。两种最流行的加密货币,比特币和以太坊,都支持对处理交易的规则或脚本进行编码的功能。最近,以太坊智能合约被稳步采用。作为主要的智能合同语言,Solidity做的智能合约容易受到某些攻击。
Oyente是一个智能合约自动审计工具,它能分析智能合约并返回可能的bug攻击,包括著名的DAO攻击之类的。它由新加坡国立大学的研究人员在2016年1月开发。您可以在这里参阅第23届ACM CCS会议上提交的论文。
该工具是开源项目,支持4种漏洞的检测,具体的如何使用相关信息使用方式可以参考github

二、安装

在安装前一定要注意,python的版本最好大于3.5,很多错误都是因为python的版本而出现的

1.在docker安装

使用docker安装是最简单的方法,因为docker本身创建了运行Oyente所需的环境。

在docker中运行

sudo apt-get update
sudo apt install docker.io
docker pull luongnguyen/oyente
docker run -i -t luongnguyen/Oyente

在容器中检测合约,运行这个代码:(这句话可能是这么翻译,有点没看懂贴上原文)

To evaluate the greeter contract inside the container, run

cd /oyente/oyente
python oyente.py -s greeter.sol

docker

结束。就这么简单docker真的是个神器太喜欢了,可是我却要用linux,还好有wsl可以救我
=-=

但每次评估新的智能合约时,都必须使用unix命令在容器中创建一个文件,然后运行最后一个命令。可以在docker容器中安装vim,但创建和编辑文件仍然是一项繁忙的任务。

2.linux安装

这里没有做window的,大家可以了解一下WSL2真的很好用。

1.首先就是装依赖配置环境

Solc
Geth and evm
Z3
python
web3
requests library

首先是python大多人都有吧,但是为了方便新手,还是加上python
这里只是最常见的python安装方法,请一定根据你自己的系统版本找相应教程安装,不然之后你会很难受。

# sudo apt-get install python3.7
# sudo apt install python-pip
# pip install virtualenv
# sudo apt install vim

然后solc编译器,用于写solidity合约

$ sudo add-apt-repository ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install solc

evm 以太坊的虚拟机

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum

z3处理器,一个Theorem Prover(不知道怎么翻译,反正就是帮助oyente进行检测的)工具

$ python scripts/mk_make.py --python
$ cd build
$ make
$ sudo make install

request library 和 web3 library

pip install requests
pip install web3

最后

pip2 install oyente

安装完成
运行就不运行了。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
智能合约漏洞检测工具是用于检测智能合约中潜在漏洞的软件工具。目前市场上有多种智能合约漏洞检测工具,包括但不限于: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使用了一种基于数据流分析的方法来检测合约中的漏洞。 综上所述,不同的智能合约漏洞检测工具使用了不同的技术和方法来检测合约中的漏洞,每种工具都有其独特的优势和劣势。在选择合适的工具时,需要根据具体的需求和场景进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值