Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
caracal — स्टार्कनेट स्मार्ट कॉन्ट्रैक्ट्स के लिए स्थैतिक विश्लेषक | Kitploit
उपकरण/GitHubGitHub/crytic/caracal
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषण
GitHubcrytic/caracal

caracal

स्टार्कनेट स्मार्ट कॉन्ट्रैक्ट्स के लिए स्थैतिक विश्लेषक

रिपॉजिटरी देखें
1481122 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Caracal

Caracal, Starknet स्मार्ट कॉन्ट्रैक्ट्स के लिए SIERRA प्रतिनिधित्व पर एक स्थैतिक विश्लेषक उपकरण है।

विशेषताएँ

  • कमजोर 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 CLI विकल्प या CORELIB_PATH पर्यावरण चर सेट करके corelib लाइब्रेरी का पथ प्रदान करना होगा।
डिटेक्टर चलाएँ:

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-arithmeticfelt252 प्रकार के साथ उपयोगकर्ता नियंत्रित संचालन का पता लगाएँ, जो ओवरफ्लो/अंडरफ्लो सुरक्षित नहीं हैमध्यममध्यम1 और 2
4reentrancyपता लगाएँ जब बाहरी कॉल से पहले एक स्टोरेज चर पढ़ा जाता है और बाद में लिखा जाता हैमध्यममध्यम1 और 2
5read-only-reentrancyपता लगाएँ जब एक व्यू फ़ंक्शन बाहरी कॉल के बाद लिखे गए स्टोरेज चर को पढ़ता हैमध्यममध्यम1 और 2
6unused-eventsपरिभाषित लेकिन उत्सर्जित नहीं की गई घटनाएँमध्यममध्यम1 और 2
7unused-returnअप्रयुक्त रिटर्न मानमध्यममध्यम1 और 2
8unenforced-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तत्व(ों) को हटाने के बाद किसी सरणी या स्पैन के उपयोग का पता लगाएँनिम्नमध्यम1 और 2