加入 Empire Hacking Slack
- 讨论与支持
Slither 是一个用 Python3 编写的 Solidity 和 Vyper 静态分析框架。它运行一套漏洞检测器,打印合约细节的可视化信息,并提供 API 以轻松编写自定义分析。Slither 使开发者能够发现漏洞,增强代码理解,并快速原型化自定义分析。
在 Hardhat/Foundry/Dapp/Brownie 应用程序上运行 Slither:```console slither .
如果你的项目有依赖项,这是首选选项,因为 Slither 依赖于底层编译框架来编译源代码。
不过,你也可以在单个不导入依赖的文件上运行 Slither:```console
slither tests/uninitialized.sol
注意 Slither 需要 Python 3.10+。 如果您不打算使用 支持的编译框架,则需要 solc 即 Solidity 编译器;我们推荐使用 solc-select 来方便地在不同 solc 版本间切换。
uv 是一个快速的 Python 包管理器,速度比 pip 快 10 到 100 倍。```console
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install slither-analyzer
uvx --from slither-analyzer slither
升级:```console
uv tool upgrade slither-analyzer
python3 -m pip install slither-analyzer
要升级:```console
python3 -m pip install --upgrade slither-analyzer
brew install slither-analyzer
### 使用 Git(开发)```bash
git clone https://github.com/crytic/slither.git && cd slither
# Install as editable for development
uv tool install -e .
# Or use uv run for testing without installation
uv run slither <target>
The -e flag installs in editable mode, meaning changes to the source code are immediately reflected without reinstalling.
使用 eth-security-toolbox Docker 镜像。它在一个镜像中包含了我们所有的安全工具和每个主要版本的 Solidity。/home/share 将被挂载到容器内的 /share。```bash
docker pull trailofbits/eth-security-toolbox
为了在容器中共享一个目录:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox
$GIT_TAG 替换为实际标签) ```YAML
slither [target] --checklist。slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/(替换 ORG、REPO、COMMIT)