相关环境有
- smartbugs(https://github.com/smartbugs/smartbugs)
- python
- jupyter
- nicad(https://github.com/eff-kay/solidity-nicad)
主要分为
- 代码部分
- pyFiles:大部分数据的运行代码都在这个部分,修改文件路径后可以直接运行
- 大概分为三个部分:
- smartbugs处理:getBugRes.py,runsmartbugs.py smartbugsrestojson.py
- StackOverflow数据匹配:match.py,manualMatch.py
- 检测结果定位:soltosnippet.py
- 大概分为三个部分:
- runCode:与pyFiles的代码接近,我先在这里写好然后转成py文件格式方便运行
- gasDetect:雀屏给的js文件,用于检测gas低效模式
- RQ:与毕业论文的几个RQ有关系,其中RQ6文件夹比较重要
- statisc:对实验结果的统计代码
- pyFiles:大部分数据的运行代码都在这个部分,修改文件路径后可以直接运行
- 数据部分
-
data文件夹是爬取的StackOverflow以及16w开源合约的数据
-
bugResult是对开源合约的漏洞检测结果
-
completeRes:对于每种方法,获取的bug检测结果的小集合
-
gaspattern:gas检测的结果
-
proliData:扩散检测结果,主要使用prilidata.pic
-
astResultCsv:对每种方法的代码克隆匹配的最终结果
-
confunformat:将爬取的开源项目以及代码片段转为csv格式
-
bugResult:开源项目的漏洞检测结果,过大,在83服务器
-
manualResultCsv:之前人工验证的结果
-
snippetSolFmt:nicad的检测结果,主要使用其中的xml文件
-
codeSolFmt:同上
-
matchRes:匹配后的结果,与astResultCsv相比是一个初级结果
-
打开jupyter,正常运行即可
一部分的程序依赖smartbugs,注意预先安装smartbugs
- 对比方法
- nicad
- 运行程序上基本上没有相关代码,因为可以直接在命令行运行
- nicad