
Binary Ninja के लिए प्लगइन जो स्थानीय Ollama मॉडलों को एकीकृत करता है ताकि डीकंपाइल किए गए HLIL कोड में फ़ंक्शनों और वेरिएबलों का नाम बदला जा सके, विश्लेषण को पूरी तरह स्थानीय और ऑफ़लाइन रखकर गोपनीयता को संरक्षित करता है।
लेखक: Austin Haggard
Binary Ninja Ollama आपके अपने स्थानीय रूप से होस्ट किए गए ollama सर्वर के साथ एकीकृत होता है ताकि AI की मदद से फ़ंक्शन और वेरिएबल्स का नाम बदला जा सके
Ollama एक ऐसा टूल है जो आपको ओपन सोर्स AI मॉडल डाउनलोड करने और उन्हें स्थानीय रूप से चलाने की सुविधा देता है। कुछ मॉडलों के लिए व्यापक कंप्यूटिंग शक्ति की आवश्यकता होती है, जबकि अन्य को आपके व्यक्तिगत लैपटॉप पर चलाया जा सकता है। आपके द्वारा चुने गए मॉडल के आधार पर परिणाम काफी भिन्न होंगे :)।
इसे sidekick/openai के बजाय क्यों उपयोग करें?
यह प्लगइन Ollama को Binary Ninja के साथ एकीकृत करता है और नीचे सूचीबद्ध क्रियाओं का समर्थन करता है:
यदि आप इसे एक स्टैंडअलोन प्लगइन के रूप में स्थापित कर रहे हैं, तो आप इसे Binary Ninja के प्लगइन पथ में रख सकते हैं (या सिम-लिंक कर सकते हैं)। डिफ़ॉल्ट पथ Vector 35 के दस्तावेज़ीकरण में विस्तृत हैं।
ollama को pip3 install ollama के साथ स्थापित किया गयाइसके लिए आवश्यक है कि आपके पास अपना स्वयं का ollama सर्वर उपयोग करने या होस्ट करने की पहुंच हो और आप अपनी पसंद के किसी भी मॉडल को डाउनलोड करें।
अपना सर्वर सेटअप करने और अपनी पसंद के किसी भी मॉडल को डाउनलोड करने के लिए https://ollama.com पर दिए गए निर्देशों का पालन करें। ऐसा करने के बाद एक सर्वर स्वचालित रूप से प्रारंभ हो जाना चाहिए और localhost:11434 के माध्यम से एक्सेस किया जा सकता है।
सभी फ़ंक्शन वेरिएबल्स का नाम बदलने का विकल्प किसी फ़ंक्शन के भीतर सभी वेरिएबल्स को पार्स करेगा और निम्नलिखित प्रॉम्प्ट के आधार पर उनका नाम बदलने का प्रयास करेगा:
prompt = (
f"In one word, what should the variable '{variable}' be named in the below Function? "
f"The name must meet the following criteria: all lowercase letters, usable in Python code"
)

सभी फ़ंक्शन का नाम बदलने का विकल्प binaryview के भीतर सभी फ़ंक्शनों को सबसे छोटे से सबसे बड़े तक लूप करेगा और प्रॉम्प्ट के आधार पर उनका नाम बदलेगा:
prompt = (
f"Given the following HLIL decompiled code snippet, provide a Python-style function name that describes what the code is doing. "
f"The name must meet the following criteria: all lowercase letters, usable in Python code, with underscores between words. "
f"Only return the function name and no other explanation or text data included."
)

किसी लक्षित फ़ंक्शन का नाम बदलने के लिए वही प्रॉम्प्ट उपयोग होता है जो सभी फ़ंक्शन का नाम बदलने के लिए होता है, लेकिन प्लगइन को ट्रिगर करते समय यह चयनित फ़ंक्शन तक सीमित रहता है।
किसी लक्षित वेरिएबल का नाम बदलने के लिए वही प्रॉम्प्ट उपयोग होता है जो सभी वेरिएबल्स का नाम बदलने के लिए होता है, लेकिन प्लगइन को ट्रिगर करते समय यह चयनित फ़ंक्शन तक सीमित रहता है।
सेटिंग्स binary ninja के पहली बार प्रारंभ होने पर किसी भी नाम-परिवर्तन ऑपरेशन के पहले कॉल पर ट्रिगर होती हैं, या इसे मैन्युअल रूप से ट्रिगर करने पर। लागू की गई सेटिंग्स binary ninja सत्र के भीतर बनी रहेंगी।
सेटिंग्स विंडो आपको ollama के भीतर उपयोग करने के लिए IP, पोर्ट और मॉडल सेट करने की अनुमति देती है। केवल डाउनलोड किए गए मॉडल चुनने योग्य हैं।

कोई ऐसी चीज़ जिसमें आपकी रुचि है जो शामिल नहीं है?
विचार:
यह प्लगइन MIT लाइसेंस के तहत जारी किया गया है।