oyente—合约漏洞检测工具安装
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档oyente—合约漏洞检测工具安装前言一、oyente是什么?二、安装1.在docker安装2.linux安装1.首先就是装依赖配置环境总结前言区块链是近几年来大热的项目,但是国内有关的文献文档却少之又少,最近学长让安装一个叫oyente的合约检测工具,笑死根本找不到教程,没办法只有科学上网,去谷歌爬了一篇用渣英文翻译了一下,记录下来
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
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真的是个神器太喜欢了,可是我却要用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
安装完成
运行就不运行了。
更多推荐
所有评论(0)