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
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值