
CERT Kaiju, Ghidra सॉफ्टवेयर रिवर्स इंजीनियरिंग सुइट के लिए एक बाइनरी विश्लेषण फ्रेमवर्क एक्सटेंशन है। यह रिपॉजिटरी एक 'मिरर' है -- कृपया टिकट, बग रिपोर्ट या पुल रिक्वेस्ट @CERTCC पर अपस्ट्रीम होम पर दर्ज करें: https://github.com/certcc/kaiju
CERT Kaiju Ghidra के लिए बाइनरी विश्लेषण उपकरणों का एक संग्रह है।
यह [CERT Pharos Binary Analysis Framework][pharos] की कुछ सुविधाओं का Ghidra/Java कार्यान्वयन है, विशेष रूप से फ़ंक्शन हैशिंग और मैलवेयर विश्लेषण उपकरण, लेकिन समय के साथ नए उपकरणों और क्षमताओं को विकसित करने की उम्मीद है।
चूंकि यह एक नया प्रयास है, इस कार्यान्वयन में अभी तक ROSE पर आधारित मूल C++ कार्यान्वयन के साथ पूर्ण सुविधा समानता नहीं है; हालाँकि, Java और Ghidra में स्थानांतरित होने से वास्तव में कुछ नई सुविधाएँ सक्षम हुई हैं जो मूल ढाँचे में उपलब्ध नहीं थीं — विशेष रूप से, गैर-x86 आर्किटेक्चर का बेहतर संचालन। चूंकि ढाँचे और उपकरणों का महत्वपूर्ण पुनर्रचना हो रही है, और Java और Ghidra में स्थानांतरण C++ कार्यान्वयन से भिन्न क्षमताओं को सक्षम करता है, नई ब्रांडिंग का उपयोग करने का निर्णय लिया गया ताकि विभिन्न उपकरणों और क्षमताओं पर चर्चा करते समय कार्यान्वयनों के बीच कम भ्रम हो।
निकट भविष्य के लिए हमारा इरादा मूल Pharos ढाँचे के साथ-साथ Kaiju को भी बनाए रखना है, क्योंकि दोनों अद्वितीय सुविधाएँ और क्षमताएँ प्रदान कर सकते हैं।
चेतावनी: एक प्रोटोटाइप के रूप में, इस प्लगइन द्वारा बनाए गए फ़ंक्शन हैश का मूल्यांकन करते समय कई समस्याएँ उत्पन्न हो सकती हैं। उदाहरण के लिए, Pharos कार्यान्वयन के विपरीत, Kaiju का फ़ंक्शन हैशिंग मॉड्यूल बहुत छोटे फ़ंक्शनों के लिए हैश बनाएगा (जैसे, एकल निर्देश वाले जैसे RET जो कई अनपेक्षित टकराव उत्पन्न करते हैं)। इस प्रकार, इस प्लगइन और Pharos fn2hash के बीच विश्लेषणात्मक परिणाम भिन्न हो सकते हैं।
[पूर्व-निर्मित Kaiju पैकेज][prebuilts] उपलब्ध हैं। बस अपने Ghidra संस्करण के अनुरूप ZIP फ़ाइल डाउनलोड करें और नीचे दिए गए निर्देशों के अनुसार स्थापित करें। Ghidra के ग्राफिकल इंटरफ़ेस के माध्यम से स्थापित करने की अनुशंसा की जाती है, लेकिन उपयुक्त निर्देशिका में मैन्युअल रूप से अनज़िप करके स्थापित करना भी संभव है।
CERT Kaiju को निम्नलिखित रनटाइम निर्भरताओं की आवश्यकता है:
Z3 पूर्व-निर्मित पैकेजों के भाग के रूप में पूर्व-संकलित प्रदान किया जाता है, या आप स्वयं Z3 बना सकते हैं या अपने Linux वितरण के पैकेज का उपयोग कर सकते हैं।
Ghidra प्रारंभ करें, और प्रारंभिक विंडो से, मेनू से चुनें: File > Install Extension। एक्सटेंशन विंडो के शीर्ष पर प्लस चिह्न पर क्लिक करें, फ़ाइल ब्राउज़र में .zip फ़ाइल पर नेविगेट करें और चुनें, और OK दबाएँ। एक्सटेंशन स्थापित हो जाएगा और विंडो में एक्सटेंशन के नाम के आगे एक चेकबॉक्स चिह्नित होगा जो आपको बताएगा कि यह स्थापित और तैयार है।
इंटरफ़ेस आपको एक्सटेंशन का उपयोग शुरू करने के लिए Ghidra को पुनरारंभ करने के लिए कहेगा। बस पुनरारंभ करें, और फिर Kaiju की अतिरिक्त सुविधाएँ इंटरैक्टिव रूप से या स्क्रिप्ट में उपयोग के लिए उपलब्ध होंगी।
कुछ कार्यक्षमता के लिए Kaiju प्लगइन्स को सक्षम करने की आवश्यकता हो सकती है। ऐसा करने के लिए, Code Browser खोलें फिर मेनू File > Configure पर जाएँ। पॉप अप होने वाली विंडो में, "CERT Kaiju" श्रेणी आइकन के नीचे Configure लिंक पर क्लिक करें। एक पॉप-अप सभी उपलब्ध सार्वजनिक रूप से जारी Kaiju प्लगइन्स प्रदर्शित करेगा। जिन प्लगइन्स को आप सक्रिय करना चाहते हैं उन्हें चेक करें, फिर OK दबाएँ। अब आपके पास इंटरैक्टिव प्लगइन सुविधाओं तक पहुँच होगी।
यदि कोई प्लगइन सक्षम होने के बाद तुरंत दिखाई नहीं देता है, तो आप Code Browser में Window मेनू के अंतर्गत प्लगइन पा सकते हैं।
भविष्य के उपकरणों के प्रायोगिक "अल्फा" संस्करण "Experimental" श्रेणी से उपलब्ध हो सकते हैं यदि आप उनका परीक्षण करना चाहते हैं। हालाँकि ये प्लगइन्स निश्चित रूप से प्रायोगिक और असमर्थित हैं और उत्पादन उपयोग के लिए अनुशंसित नहीं हैं। फिर भी हम शुरुआती प्रतिक्रिया का स्वागत करते हैं!
Kaiju जैसे Ghidra एक्सटेंशन को आपके Ghidra इंस्टॉलेशन की उपयुक्त निर्देशिका में एक्सटेंशन सामग्री को अनज़िप करके भी मैन्युअल रूप से स्थापित किया जा सकता है। अधिक जानकारी के लिए, कृपया The Ghidra Installation Guide देखें।
आप Kaiju एक्सटेंशन को सीधे स्रोत कोड से भी बना सकते हैं। शीर्ष Kaiju स्रोत निर्देशिका में शामिल INSTALL.md फ़ाइल देखें।
Kaiju के उपकरणों का उपयोग या तो इंटरैक्टिव ग्राफिकल तरीके से, या बैच कार्यों के लिए अधिक उपयुक्त "हेडलेस" मोड के माध्यम से किया जा सकता है। कुछ उपकरण उपकरण की प्रकृति के कारण केवल ग्राफिकल या हेडलेस उपयोग के लिए उपलब्ध हो सकते हैं।
Kaiju Java Swing और Ghidra की प्लगइन आर्किटेक्चर का उपयोग करके Ghidra के भीतर एक इंटरैक्टिव ग्राफिकल इंटरफ़ेस (GUI) बनाता है।
Kaiju के अधिकांश उपकरण वास्तव में Analysis प्लगइन्स हैं जो स्वचालित रूप से चलते हैं जब "Auto Analysis" विकल्प चुना जाता है, या तो डिस्सेम्बल करने के लिए एक नए निष्पादन योग्य आयात करने पर, या सीधे कोड ब्राउज़र विंडो से Analysis > Auto Analyze... चुनकर। आप Auto Analyze टूल में डिफ़ॉल्ट रूप से चयनित कई CERT Analysis प्लगइन्स देखेंगे, लेकिन आप अपनी इच्छानुसार किसी को भी सक्षम/अक्षम कर सकते हैं।
हालाँकि, विभिन्न GUI उपकरणों के काम करने से पहले Analysis उपकरणों को चलाया जाना चाहिए। कुछ कोने के मामलों में, सभी मेटाडेटा उत्पन्न होने और सही विभाजन और डिस्सेम्बली जानकारी बनाने के लिए Auto Analysis को दो बार चलाना भी सहायक हो सकता है, जो बदले में हैशिंग परिणामों को प्रभावित कर सकता है।
Analyzers Ghidra के विश्लेषण चरण के दौरान स्वचालित रूप से चलाए जाते हैं और इसमें शामिल हैं: