
Binary Ninja के लिए binjatron प्लगइन का एक PyQt5 फ्रंटएंड, जिसमें हाइलाइटिंग सुविधाएँ शामिल हैं जिनका उद्देश्य शुरुआती लोगों के लिए रिवर्स इंजीनियरिंग सीखना आसान बनाना है।
x86 बाइनरी को रिवर्स इंजीनियर करने की क्षमता सूचना सुरक्षा उद्योग के बाहर भी एक महत्वपूर्ण कौशल है। हालाँकि, उपलब्ध प्रशिक्षण सामग्री की प्रचुरता के बावजूद, यह सीखना कठिन कौशल बना हुआ है। कई छात्रों ने साधारण बाइनरी पर मामूली प्रगति करने के लिए आवश्यक पृष्ठभूमि ज्ञान की मात्रा पर निराशा व्यक्त की है।
Binary Ninja को अक्सर इसकी अपेक्षाकृत कम लागत, स्वच्छ इंटरफ़ेस और उपयोग में आसानी के कारण छात्रों के लिए विपणन किया जाता है। निम्न-स्तरीय और मध्यम-स्तरीय मध्यवर्ती भाषाएँ भी यह समझने का एक आसान तरीका प्रदान करती हैं कि निर्देश क्या करते हैं। इस प्रोजेक्ट का उद्देश्य बाइनरी के निष्पादन की कल्पना करना आसान बनाकर Binary Ninja को शुरुआती लोगों के लिए और भी बेहतर उपकरण बनाना है।
यह प्रोजेक्ट NCC Group के 2017 ग्रीष्मकालीन इंटर्नशिप कार्यक्रम का उत्पाद है। विज़ुअल डिबगिंग घटकों को Microcorruption का आध्यात्मिक उत्तराधिकारी माना जा सकता है, जो Matasano Security द्वारा निर्मित एक एम्बेडेड सुरक्षा CTF है। आगे के अपडेट https://github.com/ehennenfent/binja_dynamics पर ट्रैक किए जाएंगे। 18 अगस्त, 2017 के बाद रिपॉज़िटरी में किए गए किसी भी आगे के बदलाव के लिए NCC Group ज़िम्मेदार नहीं है।
अपने Binary Ninja प्लगइन फ़ोल्डर के अंदर, निम्न चलाएँ:
git clone https://github.com/ehennenfent/binja_dynamics.git
cd binja_dynamics
./install.sh
बाइनरी लोड करने के बाद, टूल्स मेनू में Enable Dynamic Analysis Tools आइटम पर क्लिक करें। एक डिबगर विंडो प्रकट होगी, जिसे आप टूलबार के बटनों के माध्यम से नियंत्रित कर सकते हैं। जैसे ही आप निष्पादन के माध्यम से आगे बढ़ते हैं, प्रोग्राम स्थिति को प्रतिबिंबित करने के लिए UI वास्तविक समय में अपडेट होगा। Binjatron के कारण, वर्तमान निर्देश और कोई भी ब्रेकपॉइंट बाइनरी व्यू में हाइलाइट किए जाते हैं। प्रत्येक मेमोरी एड्रेस और रजिस्टरों के लिए, जब भी पिछले निर्देश के परिणामस्वरूप मान बदला होता है, तो मान ऑरेंज रंग में हाइलाइट किया जाता है। इसी तरह, वर्तमान स्टैक फ्रेम के ऊपर और नीचे (साथ ही रिटर्न एड्रेस के अनुमानित स्थान) को हाइलाइट किया जाता है ताकि शुरुआती लोगों के लिए यह पहचानना आसान हो सके कि मेमोरी के कौन से हिस्से उनके लिए देखने महत्वपूर्ण हैं। ट्रेसबैक व्यूअर वर्तमान स्टैक फ्रेम्स का बैकट्रेस प्रदर्शित करता है, और एक बटन प्रदान करता है जो बाइनरी व्यू को स्वचालित रूप से उस मेमोरी एड्रेस द्वारा दिए गए स्थान पर ले जाएगा जहाँ प्लगइन को रिटर्न एड्रेस मिलने की उम्मीद है। कुछ फ़ंक्शनों में, स्टैक फ्रेम उस तरह से नहीं तोड़ा जाता है जिस तरह प्लगइन अपेक्षा करता है, इसलिए यह अनुमानित रिटर्न एड्रेस हमेशा सही नहीं हो सकता है।

(उपरोक्त स्क्रीनशॉट में, बेस पॉइंटर जैतून हरे रंग में दिखाया गया है)
कभी-कभी, इंटरफेस के सटीक व्यवहार को समझने के लिए स्रोत कोड को देखना आवश्यक हो सकता है। इसकी प्रत्याशा में, कई डिज़ाइन निर्णयों और कार्यान्वयन विवरणों को इनलाइन टिप्पणियों में समझाया गया है।
विकी अभी भी अपेक्षाकृत विरल है, लेकिन बाधाओं की सूची और विकास लॉग जैसी सामग्री समस्या निवारण में उपयोगी हो सकती है।
आरंभ करने में सहायता करने वाले उदाहरणों के लिए binja_sensei रेपो से परामर्श करने पर विचार करें।
Binary Ninja को छोड़कर, install.sh आपके लिए इन निर्भरताओं को संभाल लेगा।