Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
caracal — محلل ثابت لعقود Starknet الذكية | Kitploit
أدوات/GitHubGitHub/crytic/caracal
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكود
GitHubcrytic/caracal

caracal

محلل ثابت لعقود Starknet الذكية

عرض المستودع
148112منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

كاراكال

كاراكال هي أداة تحليل ثابتة تعمل على تمثيل SIERRA للعقود الذكية لـ Starknet.

الميزات

  • كاشفات لاكتشاف كود Cairo الضعيف
  • طابعات لتقارير المعلومات
  • تحليل التلوث
  • إطار تحليل تدفق البيانات
  • سهولة التشغيل في مشاريع Scarb

التثبيت

الملفات الثنائية المجمعة مسبقاً

الملفات الثنائية المجمعة مسبقاً متوفرة في صفحة الإصدارات. إذا كنت تستخدم مترجم Cairo 1.x.x فاستخدم الإصدار الثنائي v0.1.x، وإذا كنت تستخدم مترجم Cairo 2.x.x فاستخدم v0.2.x.

البناء من المصدر

تحتاج إلى مترجم Rust و Cargo. البناء من git:

root@kitploit:~
cargo install --git https://github.com/crytic/caracal --profile release --force

البناء من نسخة محلية:

root@kitploit:~
git clone https://github.com/crytic/caracal
cd caracal
cargo install --path . --profile release --force

الاستخدام

عرض الكاشفات:

root@kitploit:~
caracal detectors

عرض الطابعات:

root@kitploit:~
caracal printers

استخدام مستقل

لاستخدامه مع ملف Cairo مستقل ولديك مترجم Cairo محلي ثنائي، يكفي توجيهه إلى الملف. وإلا، يتم استخدام مترجم مدمج وتحتاج إلى تمرير مسار مكتبة corelib إما باستخدام خيار --corelib أو بتعيين متغير البيئة CORELIB_PATH.
تشغيل الكاشفات:

root@kitploit:~
caracal detect path/file/to/analyze
root@kitploit:~
caracal detect path/file/to/analyze --corelib path/to/corelib/src

تشغيل الطابعات:

root@kitploit:~
caracal print path/file/to/analyze --printer printer_to_use --corelib path/to/corelib/src

مشروع Cairo

إذا كان لديك مشروع Cairo يحتوي على عدة ملفات وعقود، فقد تحتاج إلى تحديد العقود باستخدام --contract-path. يتم استخدام مترجم Cairo المحلي الثنائي إذا كان متاحاً، وإلا يتم استخدام مترجم مدمج. في الحالة الأخيرة، تحتاج أيضاً إلى تحديد corelib كما هو موضح أعلاه للحالة المستقلة. المسار هو الدليل الذي يحتوي على ملف cairo_project.toml.
تشغيل الكاشفات:

root@kitploit:~
caracal detect path/to/dir
root@kitploit:~
caracal detect path/to/dir --contract-path token::myerc20::... token::myerc721::...

تشغيل الطابعات:

root@kitploit:~
caracal print path/to/dir --printer printer_to_use

Scarb

إذا كان لديك مشروع يستخدم Scarb، فأنت بحاجة إلى إضافة ما يلي في ملف Scarb.toml:

root@kitploit:~
[[target.starknet-contract]]
sierra = true

[cairo]
sierra-replace-ids = true

ثم قم بتمرير المسار إلى الدليل الذي يحتوي على ملف Scarb.toml. تشغيل الكاشفات:

root@kitploit:~
caracal detect path/to/dir

تشغيل الطابعات:

root@kitploit:~
caracal print path/to/dir --printer printer_to_use

الكاشفات

يمثل عمود Cairo إصدار (إصدارات) المترجم الذي يكون الكاشف صالحاً له.

الطابعات

  • cfg: تصدير CFG لكل دالة إلى ملف .dot
  • callgraph: تصدير رسم بياني لاستدعاءات الدوال إلى ملف .dot

كيفية المساهمة

اطلع على الويكي في المواضيع التالية:

  • كيفية كتابة كاشف
  • كيفية كتابة طابعة

القيود

  • لا يتم التعامل مع الدوال المضمنة بشكل صحيح.
  • بما أنه يعمل على تمثيل SIERRA، فليس من الممكن الإبلاغ عن مكان الخطأ في الكود المصدري، ولكن يمكننا فقط الإبلاغ عن تعليمات SIERRA / ما هو متاح في برنامج SIERRA.
تنزيل الأداة
الرقمالكاشفما يكتشفهالتأثيرالثقةCairo
1controlled-library-callاستدعاءات مكتبة مع هاش فئة يتحكم فيه المستخدمعاليةمتوسطة1 & 2
2unchecked-l1-handler-fromاكتشاف معالجات L1 بدون التحقق من عنوان المرسلعاليةمتوسطة1 & 2
3felt252-unsafe-arithmeticاكتشاف عمليات يتحكم بها المستخدم باستخدام نوع felt252، وهو غير آمن من الفيضان/النقصانمتوسطةمتوسطة1 & 2
4reentrancyاكتشاف عندما يتم قراءة متغير تخزين قبل استدعاء خارجي وكتابته بعدهمتوسطةمتوسطة1 & 2
5read-only-reentrancyاكتشاف عندما تقرأ دالة عرض متغير تخزين تمت كتابته بعد استدعاء خارجيمتوسطةمتوسطة1 & 2
6unused-eventsأحداث تم تعريفها ولكن لم يتم إصدارهامتوسطةمتوسطة1 & 2
7unused-returnقيم إرجاع غير مستخدمةمتوسطةمتوسطة1 & 2
8unenforced-viewالدالة تحتوي على معدِّل view ولكنها تعدل الحالةمتوسطةمتوسطة1
9tx-originاكتشاف استخدام عنوان مصدر المعاملة كتحكم في الوصولمتوسطةمتوسطة2
10unused-argumentsوسائط غير مستخدمةمنخفضةمتوسطة1 & 2
11reentrancy-benignاكتشاف عندما يتم كتابة متغير تخزين بعد استدعاء خارجي ولكن لم يتم قراءته قبلهمنخفضةمتوسطة1 & 2
12reentrancy-eventsاكتشاف عندما يتم إصدار حدث بعد استدعاء خارجي مما يؤدي إلى أحداث خارج الترتيبمنخفضةمتوسطة1 & 2
13dead-codeدوال خاصة لم يتم استخدامها أبداًمنخفضةمتوسطة1 & 2
14use-after-pop-frontاكتشاف استخدام مصفوفة أو span بعد إزالة عنصر/عناصرمنخفضةمتوسطة1 & 2