
Статический анализатор для Solidity и Vyper
Присоединяйтесь к Slack-каналу Empire Hacking
- Обсуждения и поддержка
Slither — это фреймворк статического анализа для Solidity и Vyper, написанный на Python3. Он запускает набор детекторов уязвимостей, выводит визуальную информацию о деталях контрактов и предоставляет API для простого написания собственных анализов. Slither позволяет разработчикам находить уязвимости, улучшать понимание кода и быстро прототипировать собственные анализы.
Запустите Slither в приложении Hardhat/Foundry/Dapp/Brownie:```console slither .
Это предпочтительный вариант, если ваш проект имеет зависимости, поскольку Slither полагается на базовый фреймворк компиляции для компиляции исходного кода.
Однако вы можете запустить Slither на одном файле, который не импортирует зависимости:```console
slither tests/uninitialized.sol
Примечание Slither требует Python 3.10+. Если вы не собираетесь использовать один из поддерживаемых фреймворков сборки, вам потребуется solc, компилятор Solidity; мы рекомендуем использовать solc-select для удобного переключения между версиями solc.
uv — это быстрый менеджер пакетов Python, который в 10-100 раз быстрее pip.```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>
Флаг -e устанавливает в редактируемый режим, то есть изменения в исходном коде немедленно отражаются без переустановки.
Используйте образ Docker eth-security-toolbox. Он включает все наши инструменты безопасности и все основные версии 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)