
Driver Buddy Reloaded एक IDA Pro Python प्लगइन है जो विंडोज कर्नेल ड्राइवरों के कुछ थकाऊ रिवर्स इंजीनियरिंग कार्यों को स्वचालित करने में मदद करता है।

स्थापना विधि आपके IDA संस्करण पर निर्भर करती है, क्योंकि अंतर्निहित प्लगइन प्रबंधक (और इसलिए hcli
टूल और ida-plugin.json मेनिफ़ेस्ट) केवल IDA 9.0 और उससे ऊपर में मौजूद है। IDA 7.6 और 8.x में कोई प्लगइन
प्रबंधक नहीं है और वे केवल प्लगइन फ़ोल्डर के शीर्ष स्तर को स्कैन करते हैं।
hcli)रिपॉजिटरी एक ida-plugin.json मेनिफ़ेस्ट भेजती है, इसलिए IDA 9.0+ प्लगइन को अपनी उप-निर्देशिका से लोड करता है। इसे इस प्रकार स्थापित करें:```
hcli plugin install DriverBuddyReloaded
यह प्लगइन को आपके उपयोगकर्ता प्लगइन फ़ोल्डर के एक उपनिर्देशिका में डालता है (जैसे
`%APPDATA%\Hex-Rays\IDA Pro\plugins\DriverBuddyReloaded\` या `~/.idapro/plugins/DriverBuddyReloaded\`), `DriverBuddyReloaded.py` एंट्री पॉइंट को उस उपनिर्देशिका के *अंदर* रखता है। यह अभिप्रेत लेआउट है: IDA मैनिफेस्ट को पढ़ता है, उपनिर्देशिका से घोषित एंट्री पॉइंट को लोड करता है, और `sys.path` पर उपनिर्देशिका को डालता है ताकि एंट्री पॉइंट सहोदर `DriverBuddyReloaded` पैकेज को आयात कर सके। आपको `DriverBuddyReloaded.py` को शीर्ष स्तर पर ले जाने की **आवश्यकता** नहीं है।
`hcli plugin status` के साथ इंस्टॉलेशन सत्यापित करें, फिर IDA लॉन्च करें और पुष्टि करें कि प्लगइन `Edit -> Plugins` के अंतर्गत दिखाई देता है (शुरुआत में किसी भी पायथन त्रुटि के लिए आउटपुट विंडो देखें)।
परीक्षण के लिए स्थानीय चेकआउट से इंस्टॉल करने के लिए (जैसे अपने स्वयं के बदलावों के बाद), रिपॉजिटरी रूट से `hcli plugin install .` चलाएँ; `hcli plugin lint .` पहले मैनिफेस्ट/लेआउट को मान्य करता है।
### IDA 7.6 / 8.x (मैन्युअल कॉपी)
इन संस्करणों में कोई प्लगइन प्रबंधक नहीं है, इसलिए `hcli`-इंस्टॉल किया गया उपनिर्देशिका प्लगइन **नहीं** उठाया जाएगा। `DriverBuddyReloaded` फ़ोल्डर और `DriverBuddyReloaded.py` स्क्रिप्ट फ़ाइल को सीधे IDA प्लगइन फ़ोल्डर के **शीर्ष स्तर** पर कॉपी करें, उदाहरण के लिए:
- `%APPDATA%\Hex-Rays\IDA Pro\plugins\`
- `C:\Program Files\IDA Pro 8.4\plugins\`
- `~/.idapro/plugins/`
परिणामी लेआउट `plugins\DriverBuddyReloaded.py` के साथ-साथ `plugins\DriverBuddyReloaded\` (पैकेज फ़ोल्डर) है।
### नोट्स
यदि आपका IDA Python 2 के लिए कॉन्फ़िगर किया गया है, तो इसे Python 3 पर स्विच करने के लिए `idapyswitch` बाइनरी (IDA के फ़ोल्डर में स्थित) चलाएँ।
**नोट:** Driver Buddy Reloaded IDA 7.6+, 8.x (8.4 सहित) और 9.0+ पर Python 3 के साथ चलता है। सभी संस्करण-विशिष्ट IDA API अंतर (IDA 9.0 में `get_inf_structure`, `ida_struct` मॉड्यूल और `idc.*struc*` हेल्पर्स को हटाना, आदि) `DriverBuddyReloaded/ida_compat.py` संगतता परत द्वारा आंतरिक रूप से संभाले जाते हैं।
## त्वरित उपयोग
ऑटो-विश्लेषण सुविधा का उपयोग करने के लिए:
1. IDA प्रारंभ करें और एक विंडोज़ कर्नेल ड्राइवर लोड करें।
2. ऑटो-विश्लेषण शुरू करने के लिए `Edit -> Plugins -> Driver Buddy Reloaded` पर जाएँ या `CTRL+ALT+A` दबाएँ।
3. विश्लेषण परिणामों के लिए "आउटपुट" विंडो देखें, और **Driver Buddy Reloaded - Findings** विंडो जो रन के अंत में खुलती है (एक पंक्ति पर डबल-क्लिक करके उसके पते पर जाएँ)।
4. निम्नलिखित फ़ाइलें IDA के DB निर्देशिका के अंतर्गत लिखी जाती हैं (सभी `<DRIVER_NAME>-YYYY-MM-DD-TIMESTAMP-` से उपसर्गित):
- `findings.json` - मशीन-पठनीय निष्कर्ष (IOCTL, फ़्लैग किए गए फ़ंक्शन, डिवाइस नाम, pooltags, कॉल चेन, ह्यूरिस्टिक्स, डिवाइस ACL ऑडिट, सिम्बोलिक लिंक, एक्सपोर्ट ऑडिट, विशेषाधिकार प्राप्त opcodes)
- `report.html` - एक स्वतंत्र, गंभीरता-समूहीकृत HTML रिपोर्ट
- `pooltags.txt` - WinDbg के लिए `pooltags.txt` प्रारूप में डंप किए गए Pooltags
- `autoanalysis.txt` - पूर्ण टेक्स्ट विश्लेषण लॉग (आउटपुट विंडो को दर्पण)
IOCTL को डिकोड करने के लिए:
1. माउस कर्सर को संदिग्ध IOCTL कोड वाली पंक्ति पर रखें।
2. राइट-क्लिक करें और `Driver Buddy Reloaded -> Decode IOCTL` चुनें; वैकल्पिक रूप से, `CTRL+ALT+D` शॉर्टकट दबाएँ।
IOCTL विंडो या findings विंडो को किसी भी समय फिर से खोलने के लिए (विश्लेषण को फिर से चलाए बिना):
- IOCTL विंडो खोलने के लिए `CTRL+ALT+I` दबाएँ।
- findings विंडो खोलने के लिए `CTRL+ALT+F` दबाएँ।
### उन्नत उपयोग
- [vulnerable_function_lists](https://github.com/voidsec/driverbuddyreloaded/blob/main/DriverBuddyReloaded/vulnerable_functions_lists) निर्देशिका में संभावित रूप से खतरनाक/समस्याग्रस्त फ़ंक्शन, विंडोज़ API और opcodes की सूचियाँ हैं; किसी विशिष्ट फ़ंक्शन/API को सूचीबद्ध करने के कारण का संक्षिप्त विवरण दिया गया है। आप ड्राइवर-विशिष्ट फ़ंक्शन शामिल करने के लिए `custom` सूची को संपादित कर सकते हैं।
**नोट**: `winapi_function_prefixes` फ़ंक्शन नाम की शुरुआत से आंशिक मिलान करेगा (जैसे `Zw` `ZwClose`, `ZwCommitComplete` आदि से मेल खाएगा) जबकि `winapi_functions` केवल सटीक मिलान करेगा।
- [find_opcodes.py](https://github.com/voidsec/driverbuddyreloaded/blob/main/DriverBuddyReloaded/find_opcodes.py) में, `find_opcode_data` विकल्प (डिफ़ॉल्ट `False`) डेटा अनुभागों में आने वाले opcode मिलान को दबा देता है ([issue #11](https://github.com/VoidSec/DriverBuddyReloaded/issues/11))। इसे `True` पर स्विच करने से डेटा में रॉ बाइट मिलान भी सामने आते हैं; यदि इस तरह कोई वास्तविक opcode छूट गया था, तो रिपोर्ट किए गए पते पर जाकर बाइट्स को कोड के रूप में पुनः परिभाषित करने से आमतौर पर वह पुनर्प्राप्त हो जाता है। मिलान की रिपोर्ट हर दूसरे चरण की तरह दी जाती है (परिणाम विंडो, `findings.json`, `report.html`)।
**सावधान**: इसे `True` पर स्विच करने से अधिक गलत सकारात्मक उत्पन्न होते हैं!
## Driver Buddy Reloaded के बारे में
**Driver Buddy Reloaded** एक IDA Pro Python प्लगइन है जो विंडोज़ कर्नेल ड्राइवरों के कुछ थकाऊ रिवर्स इंजीनियरिंग कार्यों को स्वचालित करने में मदद करता है। इसमें कई उपयोगी सुविधाएँ हैं, जैसे: