一、Slither 介绍及运行流程
Slither
是一个静态分析框架,它通过将 Solidity 智能合约转换为称为 SlithIR 的中间表示来工作。SlithIR
使用静态单一赋值 (SSA) 形式和精简指令集来减慢分析执行速度,同时保留在 Solidity 转换为字节码时可用的语义信息。
Slither 框架有几个用例,包括:
- 自动漏洞检测:无需用户干预即可检测智能合约漏洞,实现漏洞自动检测。
- 自动优化检测:Slither 可以检测编译器可能忽略的代码优化,从而自动化检测代码优化的过程
- 代码理解:对合约信息进行归纳和展示,帮助研究人员理解代码库,提高对智能合约的理解
- 辅助代码审查:用户可以通过其 API 与 Slither 交互,以方便代码审查
二、slither 安装
2.1 Solidity 编译器solc-select安装与用法
- 作用:Solidity 编译器版本之间快速切换的工具
- 安装:
pip install solc-select
管理安装和设置不同的solc编译器版本solc --version
:查看当前 Solidity 编译器版本。solc-select install
:查看可用的编译器版本。solc-select install 0.4.24
:安装 Solidity 编译器版本 0.4.24。solc-select use 0.4.24
:使用 Solidity 编译器版本 0.4.24。
2.2 slither-analyzer 检测器安装与用法
- 安装:
pip install slither-analyzer
管理安装和设置不同的solc编译器版本
https:///crytic/slither/wiki/Python-API
参考文献
Slither: A Static Analysis Framework For Smart Contracts