
दुर्लभ प्रोसेसर ISA के लिए SLEIGH समर्थन का एक रिपॉज़िटरी
असामान्य CPU, DSP और GPU आर्किटेक्चर के लिए Ghidra प्रोसेसर मॉड्यूल (SLEIGH)। लक्ष्य: Ghidra 12.1.4।
यह प्रोजेक्ट Ghidra में उन आर्किटेक्चर का सेट लाता है जिन्हें Mr-wolf-is-me/IDA-Processor-Modules कवर करता है, जो IDA Pro प्रोसेसर मॉड्यूल का एक संग्रह है। यहाँ प्रत्येक मॉड्यूल वहाँ सूचीबद्ध IDA मॉड्यूल में से एक का Ghidra समकक्ष है।
| मॉड्यूल | आर्किटेक्चर | भाषा ID | मूल IDA मॉड्यूल |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS, कोर रिवीज़न V0–V4 | PRU:LE:32:v0 … PRU:LE:32:v4 | pru-ida |
| MicroBlaze | AMD/Xilinx MicroBlaze, 32/64-बिट, BE/LE | MicroBlaze:{BE,LE}:{32,64}:default | microblaze-ida |
| xCORE | XMOS xCORE XS1, XS2 (xCORE-200), XS3 (xcore.ai) | xCORE:LE:32:XS1, XS2, XS3 | xcore-ida |
| C7x | TI C7000 DSP (C7100, C7120, C7504, C7524) | C7x:LE:64:C7100, C7120, C7504, C7524 | c7x-ida |
| SASS | NVIDIA GPU SASS, Kepler से Blackwell तक | SASS:LE:64:SM35, SM52, SM60, SM70, SM75, SM80, SM86, SM89, SM90, SM100, SM120 | sass-ida |
प्रत्येक मॉड्यूल का README उसके भाषा वेरिएंट, संदर्भ डिसअसेम्बलर से इसकी मेल की निकटता, p-code क्या मॉडल करता है, ज्ञात कमियाँ और इसके परीक्षण कैसे चलाएँ, इन्हें सूचीबद्ध करता है। STATUS.md सभी मॉड्यूलों में क्या काम करता है और क्या नहीं, साथ ही सीखे गए सबक को ट्रैक करता है।
IDA मॉड्यूल रिलीज़ ज़िप के रूप में ऐसी शर्तों के अंतर्गत वितरित किए जाते हैं जो व्युत्पन्न कार्यों को मना करती हैं; रिपॉज़िटरी स्वयं केवल README, लाइसेंस और स्क्रीनशॉट रखती हैं। यह प्रोजेक्ट एक स्वतंत्र, क्लीन-रूम कार्यान्वयन है, उस कोड का पोर्ट नहीं:
dispru/dis7x, GNU binutils, LLVM, NVIDIA nvdisasm) के विरुद्ध जाँचा गया।विचार का श्रेय और इन आर्किटेक्चरों को चुनने का श्रेय IDA-Processor-Modules के लेखक को जाता है।
प्रत्येक मॉड्यूल निर्देशिका एक मानक Ghidra एक्सटेंशन है।
पूर्व-निर्मित ज़िप: Release builds वर्कफ़्लो तीन नवीनतम Ghidra रिलीज़ के लिए प्रत्येक
मॉड्यूल बनाता है। प्रत्येक v* टैग ज़िप को
Releases पृष्ठ पर प्रकाशित करता है; अन्य पुश उन्हें
वर्कफ़्लो आर्टिफ़ैक्ट के रूप में रखते हैं। एक ज़िप केवल उसी Ghidra संस्करण में इंस्टॉल होता है जो उसके नाम में है।
एक्सटेंशन ज़िप स्वयं बनाएँ:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
स्क्रिप्ट उस Ghidra के कंपाइलर से SLEIGH स्पेक्स को कंपाइल करती है और प्रत्येक मॉड्यूल को उस Gradle रैपर से बिल्ड करती है जो Ghidra support/gradle में शिप करता है। PRU, MicroBlaze और SASS में Java कोड (ELF लोडर एक्सटेंशन) शामिल है, इसलिए बिल्ड के लिए javac वाला पूरा JDK चाहिए (केवल-JRE पैकेज पर्याप्त नहीं है): Ghidra 12.1 के लिए JDK 21 या नया, Ghidra 12.2 के लिए JDK 25। JAVA_HOME को उसी पर पॉइंट करें।
Ghidra में File → Install Extensions के ज़रिए zip इंस्टॉल करें, फिर Ghidra को रीस्टार्ट करें।
डेवलपमेंट के लिए, प्रत्येक मॉड्यूल को किसी Ghidra इंस्टॉल में सिमलिंक करें और SLEIGH स्पेक्स को कंपाइल करें:
export GHIDRA_INSTALL_DIR=/opt/ghidra_12.1.4_PUBLIC
tools/link-modules.sh
for d in */data/languages; do "$GHIDRA_INSTALL_DIR/support/sleigh" -a "$d"; done
tools/ghidra-dis.sh <language-id> <raw.bin> एक raw बाइनरी का हेडलेस लीनियर-स्वीप डिसअसेम्बली प्रिंट करता है, जो त्वरित जाँच के लिए उपयोगी है।
MIT। यह लाइसेंस केवल इस रिपॉज़िटरी में मौजूद कोड पर लागू होता है। यह मूल IDA मॉड्यूल्स पर लागू नहीं होता, जिनकी अपनी शर्तें हैं।