Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
call_map — Call Map का वर्तमान विकास https://github.com/ajylee/call_map पर होता है। Call Map Python कॉल ग्राफ़ को नेविगेट करने के लिए एक टूल है। | Kitploit
उपकरण/GitHubGitHub/nccgroup/call_map
स्थैतिक कोड विश्लेषण (SAST)भेद्यता विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंग
GitHubnccgroup/call_map

call_map

Call Map का वर्तमान विकास https://github.com/ajylee/call_map पर होता है। Call Map Python कॉल ग्राफ़ को नेविगेट करने के लिए एक टूल है।

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

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

सभी देखें →

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

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

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

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

Call Map

.. default-role:: code

परिचय

Call Map, Python में कॉल ग्राफ़्स को नेविगेट करने के लिए एक उपकरण है, जिसमें अन्य भाषाओं का समर्थन करने की योजना है। नीचे call_map -m toolz चलाने के बाद, फिर कुछ फ़ंक्शनों पर क्लिक करने के बाद का स्क्रीनशॉट है।

.. figure:: docs/UI-clicked-on-function.png

जबकि Call Map का उद्देश्य किसी कोडबेस की सामान्य समझ हासिल करने में मदद करना है, यह कोड पथों का पता लगाने के लिए भी स्वाभाविक रूप से उपयुक्त है, जो एक महत्वपूर्ण सुरक्षा चिंता का विषय है। कई सुरक्षा समस्याएँ ऐसा कोड पथ खोजने से उजागर होती हैं जो उपयोगकर्ता इनपुट को खतरनाक कोडिंग पैटर्न से जोड़ता है।

अधिक जानकारी के लिए ब्लॉग पोस्ट__ देखें।

__ https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2017/july/call-map-a-tool-for-navigating-call-graphs-in-python/

स्थापना

Call Map को Python 3.5 के लिए एक पायथन पैकेज के रूप में वितरित किया जाता है। स्थापित करने के लिए pip3, चलाएँ::

From top level directory of call_map

pip3 install -e .

ध्यान दें कि कुछ Python 3 वितरण पैकेज प्रबंधक को pip कहते हैं, और कुछ इसे pip3 कहते हैं, इसलिए आपको pip3 को pip से बदलने की आवश्यकता हो सकती है।

उपरोक्त कमांड से निष्पादन योग्य call_map उसी पथ पर स्थापित हो जाना चाहिए जहाँ Python इंटरप्रेटर स्थित है।

विवरण और वैकल्पिक तरीकों के लिए INSTALL.rst देखें।

त्वरित आरंभ

खोज शुरू करने के लिए फ़ाइलें खोलें::

call_map -f example.py

you can also open multiple files

call_map -f *.py

आप मॉड्यूल खोज पथ (sys.path) में भी जोड़ सकते हैं:

call_map -f *.py -p .

Call Map फ़ाइलों को मॉड्यूल के रूप में हल करने का प्रयास करेगा जब भी वे पाई जा सकें मॉड्यूल खोज पथ में। कमांड लाइन तर्कों के अधिक दस्तावेज़ीकरण के लिए, call_map -h देखें।

कॉन्फ़िगरेशन

Call Map को कॉन्फ़िगर करने के लिए, पर्यावरण चर CALL_MAP_RC_DIRECTORY सेट करें। Call Map कॉन्फ़िगरेशन फ़ाइल का पथ होगा::

$CALL_MAP_RC_DIRECTORY/call_map_rc.py

इस समय कॉन्फ़िगरेशन विकल्प हैं:

  • open_in_editor(path: pathlib.Path, line: int): यदि आप इस फ़ंक्शन को परिभाषित करते हैं तो जब भी आप कोई फ़ाइल खोलेंगे इसे कॉल किया जाएगा। उदाहरण के लिए, निम्नलिखित का उपयोग Emacs सर्वर में फ़ाइलें खोलने के लिए किया जा सकता है, यदि आपने एक चल रहे Emacs सत्र में server-mode को कॉल किया है::

    def open_in_editor(path, line): import subprocess as sbp sbp.call(['emacsclient', '+{}'.format(line), str(path)])

    निम्नलिखित का उपयोग GVim सर्वर में फ़ाइलें खोलने के लिए किया जा सकता है, यदि आपने gvim --servername my_vim_server के साथ GVim सर्वर शुरू किया है::

    def open_in_editor(path, line): import subprocess as sbp sbp.call(['gvim', '--servername', 'my_vim_server', '--remote', '+{}'.format(line), str(path)])

  • MULTITHREADING: GUI और कॉल ग्राफ़ की खोज के लिए एक अलग थ्रेड का उपयोग करना है या नहीं। डिफ़ॉल्ट True है। इसे बंद करना डिबग उद्देश्यों के लिए है।

विचित्रताएँ

UI डिज़ाइन में कुछ विचित्रताएँ हैं, इस तथ्य के कारण कि मैंने कोई बेहतर समाधान नहीं खोजा है या अतिरिक्त जटिलता का समझौता प्रतिकूल है।

  • उपयोग एक से अधिक बार दिखाई दे सकते हैं, लेकिन वास्तव में वे एक ही स्कोप में अलग-अलग उपयोग हैं।

  • आप देख सकते हैं कि help, id, और filter जैसे कुछ बिल्ट-इन अनदेखा कर दिए जाते हैं। अनदेखे किए गए फ़ंक्शनों की पूरी सूची के लिए स्रोत कोड में call_map/config.py देखें।

  • यदि हाइलाइट किया जाने वाला स्थान किसी फ़ाइल की शुरुआत में है, तो वह हाइलाइट नहीं होगा। ऐसा इसलिए है क्योंकि सामान्यतः केवल मॉड्यूल और स्क्रिप्ट अपनी-अपनी फ़ाइलों की शुरुआत में स्थित होते हैं।

Jedi से विरासत में मिली विचित्रताएँ

कुछ विचित्रताएँ jedi Python विश्लेषण बैकएंड से विरासत में मिली हैं।

  • उपयोगों के लिए खोज दायरा उन मॉड्यूलों का समूह है जिन्हें jedi बैकएंड द्वारा लोड किया गया है। इसका मतलब है कि जैसे ही आप नए मॉड्यूलों का अन्वेषण करेंगे, दायरा बदल जाएगा। यदि आप किसी मॉड्यूल को स्पष्ट रूप से खोज दायरे में शामिल करना चाहते हैं, तो उसे निरीक्षण किए जाने वाले मॉड्यूलों की प्रारंभिक सूची में जोड़ें।

  • jedi हमेशा इंटरप्रेटर के sys.path को खोजता है, भले ही वह स्पष्ट रूप से शामिल न हो। हालाँकि, यह उपयोगकर्ता-परिभाषित sys_path को प्राथमिकता देगा।

सावधानियाँ

स्टेटिक विश्लेषण बैकएंड के लिए मौजूद कोई भी सावधानी Call Map पर भी लागू होती है। (इस समय केवल jedi बैकएंड को Call Map में एकीकृत किया गया है।)

Jedi

Python विश्लेषण के लिए jedi बैकएंड हमेशा सभी उपयोगों को नहीं खोजता। Python की गतिशील प्रकृति स्टेटिक विश्लेषण से किसी फ़ंक्शन की परिभाषा का हमेशा निर्धारण करना असंभव बना देती है। कभी-कभी jedi एक कॉल को कई संभावित फ़ंक्शनों में हल करता है। उदाहरण के लिए os.path.abspath प्लेटफ़ॉर्म पर निर्भर करता है। इस मामले में call_map दोनों संभावनाओं को abspath और abspath (2) के रूप में सूचीबद्ध करता है। jedi सभी कॉल और उपयोगों को भी हल नहीं करता। Jedi का अपना दस्तावेज़ीकरण भी सावधानियों की सूची__ रखता है।

कभी-कभी जब Jedi किसी एक आइटम का विश्लेषण करते समय त्रुटि फेंकता है, तो त्रुटि अन्य आइटमों को प्रभावित करती है। उदाहरण के लिए, उपयोगों को खोजते समय, यदि Jedi एक उपयोग पर त्रुटि उठाता है, तो उसके द्वारा खोजे गए अन्य उपयोग पुनर्प्राप्त करने योग्य नहीं रह सकते हैं (Jedi v0.10.0 तक)।

__ https://jedi.readthedocs.io/en/latest/docs/features.html#caveats

टूल डाउनलोड करें