
एक प्लगइन जो Binary Ninja का उपयोग करके रिवर्स इंजीनियरिंग सीखने के लिए शुरुआती लोगों को संसाधन प्रदान करता है। यह स्वचालित रूप से कई अन्य प्लगइन्स स्थापित करता है, और इन प्लगइन्स की विशेषताओं को प्रदर्शित करने वाले उदाहरण प्रदान करता है।
Binary Ninja के लिए शैक्षिक उपकरण
यह प्लगइन शुरुआती लोगों के लिए Binary Ninja का उपयोग करके रिवर्स इंजीनियरिंग सीखने के संसाधन प्रदान करता है। यह स्वचालित रूप से कई अन्य प्लगइन्स इंस्टॉल करता है, और इन प्लगइन्स की विशेषताओं को प्रदर्शित करने वाले उदाहरण प्रदान करता है।
यह प्रोजेक्ट NCC Group के 2017 ग्रीष्मकालीन इंटर्नशिप कार्यक्रम की उपज है। आगे के अपडेट https://github.com/ehennenfent/binja_sensei पर ट्रैक किए जाएंगे। 18 अगस्त, 2017 के बाद रिपॉजिटरी में किए गए किसी भी आगे के बदलाव के लिए NCC Group जिम्मेदार नहीं है।
भविष्य-सुरक्षा (futureproofing) के लिए, Binja Sensei प्लगइन्स को अभी तक अपूर्ण Plugin Manager API के माध्यम से इंस्टॉल करता है। चूंकि प्लगइन मैनेजर के पास वर्तमान में GUI नहीं है, इसलिए इंस्टॉलेशन Binary Ninja स्क्रिप्ट कंसोल (Ctrl+` के माध्यम से एक्सेस किया गया) पर निम्नलिखित स्निपेट चलाकर पूरा किया जाना चाहिए।
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
नोट: आपने Binja कब इंस्टॉल किया, इसके आधार पर, इस प्लगइन को दिखाने के लिए आपको manager.check_for_updates() चलाने और Binja को पुनरारंभ करने की आवश्यकता हो सकती है। मैं दृढ़ता से एक नई VM पर इंस्टॉल करने की सलाह देता हूं।
यदि आप इसे 31 अगस्त, 2017 से पहले चला रहे हैं, तो आपको Binary Ninja के डेवलपमेंट संस्करण का उपयोग करना होगा, क्योंकि निर्भरता इंस्टॉलेशन b0778fc और 326253a पर निर्भर करती है।
इसके बाद, Binary Ninja को पुनरारंभ करें। लोड होने पर, Sensei सभी बंडल किए गए प्लगइन्स को नवीनतम संस्करण में अपडेट करेगा, और प्रत्येक प्लगइन के लिए किसी भी python निर्भरता को इंस्टॉल करेगा। यह इंस्टॉल स्क्रिप्ट को स्वचालित रूप से नहीं चलाएगा, इसलिए यदि आप Ubuntu पर हैं और binja_dynamics सेट करने का इरादा रखते हैं, तो आपको ~/.binaryninja/repositories/default/plugins/binja_dynamics पर नेविगेट करना होगा और ./install.sh चलाना होगा।
यदि कोई भी प्लगइन इंस्टॉलेशन विफल हो जाता है, तो आपको मैन्युअल इंस्टॉलेशन करने में अधिक सफलता मिल सकती है। Issue #753 के लंबित रहने तक, कुछ प्लगइन्स जो पूर्ण फ़ाइल पथों पर निर्भर हैं, मैन्युअल रूप से इंस्टॉल किए बिना काम नहीं कर सकते हैं। मैन्युअल रूप से इंस्टॉल करने के लिए, नीचे दिए गए प्रासंगिक रिपॉजिटरी लिंक को कॉपी करें, और उन्हें अपनी प्लगइन डायरेक्टरी के अंदर क्लोन करें।
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
कृपया ध्यान दें कि बंडल किए गए उपकरण उनके संबंधित लेखकों की संपत्ति बने हुए हैं। जबकि यह प्लगइन MIT License के तहत पेश किया गया है, वह लाइसेंस नीचे दिए गए किसी भी प्लगइन पर लागू नहीं होता है।
इन प्लगइन्स के संभावित उपयोग के मामलों को प्रदर्शित करने के लिए, PicoCTF 2013 की पांच ओवरफ्लो चुनौतियों के समाधान शामिल हैं। कृपया ध्यान दें कि राइटअप के निर्माण के बाद से कार्यक्षमता, रंग योजना और बगफिक्स के संदर्भ में मामूली बदलाव लागू किए गए हो सकते हैं।
Annotator libc फ़ंक्शंस के कॉल्स को तर्क प्रोटोटाइप के साथ एनोटेट करने के लिए एक वर्चुअल स्टैक का उपयोग करता है।

यह प्लगइन आर्किटेक्चर पर Binary Ninja की आंतरिक जानकारी के साथ एक चीट शीट प्रदर्शित करता है।

यह प्लगइन Binjatron में एक Qt फ्रंटएंड जोड़ता है, जिसमें शुरुआती लोगों को महत्वपूर्ण मेमोरी स्थानों को पहचानने में मदद करने के लिए हाइलाइट्स शामिल हैं।

एक पॉपअप विंडो जोड़ता है जो सरल अंग्रेजी में बताती है कि एक असेंबली निर्देश क्या करता है।

सिस्टम कॉल्स को तर्कों के साथ एनोटेट करता है।
