
محلل ثابت لـ Solidity و Vyper
انضم إلى سلاك Empire Hacking
- مناقشات ودعم
Slither هو إطار عمل للتحليل الثابت للعقود الذكية بلغة Solidity و Vyper، مكتوب بلغة Python3. يقوم بتشغيل مجموعة من كاشفات الثغرات الأمنية، ويطبع معلومات مرئية حول تفاصيل العقد، ويوفر واجهة برمجة تطبيقات لكتابة تحليلات مخصصة بسهولة. يمكّن Slither المطورين من العثور على الثغرات الأمنية، وتحسين فهمهم للكود، والنمذجة السريعة للتحليلات المخصصة.
قم بتشغيل Slither على تطبيق Hardhat/Foundry/Dapp/Brownie:```console slither .
هذا هو الخيار المفضل إذا كان مشروعك يحتوي على تبعيات، حيث يعتمد Slither على إطار التجميع الأساسي لتجميع الكود المصدري. ومع ذلك، يمكنك تشغيل Slither على ملف واحد لا يستورد تبعيات:```console
slither tests/uninitialized.sol
ملاحظة يتطلب Slither بايثون 3.10+. إذا كنت لن تستخدم أحد أطر التجميع المدعومة، فأنت بحاجة إلى solc، مترجم Solidity؛ نوصي باستخدام solc-select للتبديل بسهولة بين إصدارات solc.
uv هو مدير حزم بايثون سريع أسرع من 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>
العلامة -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)