
Analizador estático para Solidity y Vyper
Únete al Slack de Empire Hacking
- Discusiones y Soporte
Slither es un framework de análisis estático para Solide y Vyper escrito en Python3. Ejecuta un conjunto de detectores de vulnerabilidades, imprime información visual sobre los detalles del contrato y proporciona una API para escribir fácilmente análisis personalizados. Slither permite a los desarrolladores encontrar vulnerabilidades, mejorar su comprensión del código y prototipar rápidamente análisis personalizados.
Ejecuta Slither en una aplicación Hardhat/Foundry/Dapp/Brownie:```console slither .
Esta es la opción preferida si tu proyecto tiene dependencias, ya que Slither se basa en el marco de compilación subyacente para compilar el código fuente.
Sin embargo, puedes ejecutar Slither en un solo archivo que no importe dependencias:```console
slither tests/uninitialized.sol
Nota Slither requiere Python 3.10+. Si no vas a usar uno de los frameworks de compilación compatibles, necesitas solc, el compilador de Solidity; recomendamos usar solc-select para cambiar convenientemente entre versiones de solc.
uv es un gestor de paquetes de Python rápido que es 10-100x más rápido que pip.```console
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install slither-analyzer
uvx --from slither-analyzer slither
Para actualizar:```console
uv tool upgrade slither-analyzer
python3 -m pip install slither-analyzer
Para actualizar:```console
python3 -m pip install --upgrade slither-analyzer
brew install slither-analyzer
### Usando Git (Desarrollo)```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.
Use la imagen docker eth-security-toolbox. Incluye todas nuestras herramientas de seguridad y todas las versiones principales de Solidity en una sola imagen. /home/share se montará en /share dentro del contenedor.```bash
docker pull trailofbits/eth-security-toolbox
Para compartir un directorio en el contenedor:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox
$GIT_TAG con la etiqueta real) ```YAML
slither [objetivo] --checklist.slither [objetivo] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ (reemplace ORG, REPO, COMMIT)