Securify2.0安装
开源项目地址:https://github.com/eth-sri/securify2
本地安装
环境:
ubuntu 18.04.1
conda 4.8.5
- 安装souffle
wget https://github.com/souffle-lang/souffle/releases/download/1.6.2/souffle_1.6.2-1_amd64.deb
dpkg -i souffle_1.6.2-1_amd64.deb
apt install -f # 如果出现了缺少包报错,执行此命令,否则跳过此命令
dpkg -i souffle_1.6.2-1_amd64.deb
- 创建虚拟环境
conda create -n securify2-py37 python=3.7
conda activate securify2-py37
- 安装securify2.0
pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- 安装solidity编译器solc
pip install solc-select
solc-select install 0.5.12 #版本根据需要安装
solc-select use 0.5.12
- 运行securify2.0
securify <contract_source>.sol [--use-patterns Pattern1 Pattern2 ...]
# 更多参考 https://github.com/eth-sri/securify2
Docker安装
环境:
Docker 19.03.12
- 导入镜像
下载镜像并解压ZIP: https://download.csdn.net/download/qingche_/87697243
docker import securify2_g.tar securify2_g:v1
- 进入容器
docker run --name securify2 --privileged=true -m 100g -it -v <Local working path>:/workdir -e LANG="C.UTF-8" securify2_g:v1 /bin/bash # <Local working path> 用本地文件夹路径代替,比如/ssd/dataset/
exit # 退出容器
docker exec -it securify2 /bin/bash #再次进入容器
- 运行securify2.0
cd workdir # 挂载的本地文件夹,存放合约源代码数据集
securify <contract_source>.sol [--use-patterns Pattern1 Pattern2 ...]
# 更多参考 https://github.com/eth-sri/securify2