अपडेट पर वापस जाएँ
New releaseJul 29, 2026

slither v0.11.6

Solidity और Vyper के लिए स्थैतिक विश्लेषक

साझा करें

Slither, स्मार्ट कॉन्ट्रैक्ट स्टैटिक एनालाइज़र

Slither Static Analysis Framework Logo

Build Status PyPI Slither - Read the Docs Slither - Wiki

एम्पायर हैकिंग स्लैक में शामिल हों

Slack Status

- चर्चाएँ और सहायता

Slither एक Solidity और Vyper स्टैटिक विश्लेषण फ्रेमवर्क है जो Python3 में लिखा गया है। यह भेद्यता डिटेक्टरों का एक सेट चलाता है, कॉन्ट्रैक्ट विवरणों के बारे में दृश्य जानकारी प्रिंट करता है, और आसानी से कस्टम विश्लेषण लिखने के लिए एक API प्रदान करता है। Slither डेवलपर्स को कमजोरियों का पता लगाने, अपनी कोड समझ को बढ़ाने और तेज़ी से कस्टम विश्लेषणों का प्रोटोटाइप बनाने में सक्षम बनाता है।

विशेषताएँ

  • कम झूठी सकारात्मकता के साथ कमजोर Solidity कोड का पता लगाता है (ट्रॉफियों की सूची देखें [./trophies.md])
  • स्रोत कोड में त्रुटि की स्थिति की पहचान करता है
  • निरंतर एकीकरण और Hardhat/Foundry बिल्ड में आसानी से एकीकृत होता है
  • अंतर्निहित 'प्रिंटर' महत्वपूर्ण कॉन्ट्रैक्ट जानकारी की त्वरित रिपोर्ट करते हैं
  • Python में कस्टम विश्लेषण लिखने के लिए डिटेक्टर API
  • Solidity >= 0.4 के साथ लिखे गए कॉन्ट्रैक्ट का विश्लेषण करने की क्षमता
  • मध्यवर्ती प्रतिनिधित्व (SlithIR) सरल, उच्च-सटीक विश्लेषण सक्षम बनाता है
  • सभी सार्वजनिक Solidity कोड का 99.9% सही ढंग से पार्स करता है
  • प्रति कॉन्ट्रैक्ट 1 सेकंड से कम का औसत निष्पादन समय
  • CI में Github के कोड स्कैनिंग के साथ एकीकृत होता है
  • Vyper स्मार्ट कॉन्ट्रैक्ट के लिए समर्थन

उपयोग

किसी Hardhat/Foundry/Dapp/Brownie एप्लिकेशन पर Slither चलाएँ:```console slither .

यह पसंदीदा विकल्प है यदि आपके प्रोजेक्ट में निर्भरताएँ हैं क्योंकि Slither स्रोत कोड संकलित करने के लिए अंतर्निहित संकलन ढांचे पर निर्भर करता है।

हालांकि, आप Slither को एक एकल फ़ाइल पर चला सकते हैं जो निर्भरताएँ आयात नहीं करती:```console
slither tests/uninitialized.sol

कैसे स्थापित करें

नोट Slither को Python 3.10+ की आवश्यकता है। यदि आप नहीं हैं समर्थित संकलन फ्रेमवर्क में से किसी एक का उपयोग करने जा रहे हैं, तो आपको solc, Solidity कंपाइलर की आवश्यकता है; हम solc संस्करणों के बीच सुविधाजनक रूप से स्विच करने के लिए solc-select का उपयोग करने की सलाह देते हैं।

uv का उपयोग करना (अनुशंसित)

uv एक तेज़ Python पैकेज मैनेजर है जो pip से 10-100x तेज़ है।```console

Install uv if you haven't already

curl -LsSf https://astral.sh/uv/install.sh | sh

Install slither as a tool

uv tool install slither-analyzer

Or run slither without installation

uvx --from slither-analyzer slither

अपग्रेड करने के लिए:```console
uv tool upgrade slither-analyzer

Pip का उपयोग करना```console

python3 -m pip install slither-analyzer

अपग्रेड करने के लिए:```console
python3 -m pip install --upgrade slither-analyzer

Brew का उपयोग करके```console

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 फ़्लैग एडिटेबल मोड में इंस्टॉल करता है, जिसका अर्थ है कि स्रोत कोड में किए गए परिवर्तन बिना पुनः इंस्टॉल किए तुरंत प्रभावी हो जाते हैं।

Docker का उपयोग करना

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

एकीकरण

  • GitHub एक्शन एकीकरण के लिए, slither-action का उपयोग करें।
  • प्री-कमिट एकीकरण के लिए, उपयोग करें ($GIT_TAG को वास्तविक टैग से बदलें) ```YAML
  • मार्कडाउन रिपोर्ट उत्पन्न करने के लिए, slither [target] --checklist का उपयोग करें।
  • GitHub स्रोत कोड हाइलाइटिंग के साथ मार्कडाउन उत्पन्न करने के लिए, slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ का उपयोग करें (ORG, REPO, COMMIT को बदलें)

डिटेक्टर

श्रेणियाँ