IDAPython और Ghidra स्क्रिप्टिंग
दोहराए जाने वाले विश्लेषण कार्यों को स्वचालित करने और जानकारी निकालने के लिए IDA Pro और Ghidra हेतु Python स्क्रिप्ट लिखना सीखें।
IDAPython और Ghidra स्क्रिप्टिंग, CoddyKit पर रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
RE स्क्रिप्टिंग का परिचय
स्वागत है! इस पाठ में हम रिवर्स इंजीनियरिंग के लिए स्क्रिप्टिंग की दुनिया में प्रवेश करेंगे। स्क्रिप्टिंग आपको कार्यों को स्वचालित करने और अपने पसंदीदा RE उपकरणों की क्षमताएँ बढ़ाने देती है।
इसे अपने उपकरणों को नई तरकीबें सिखाने जैसा समझिए!
स्क्रिप्टिंग शक्तिशाली क्यों है
स्क्रिप्टिंग का उपयोग क्यों करें?
- स्वचालन: विशिष्ट डेटा निकालने या फ़ंक्शन के नाम बदलने जैसे दोहराए जाने वाले कार्य स्वचालित किए जा सकते हैं।
- कस्टम विश्लेषण: ऐसे विशिष्ट विश्लेषण करें जो उपकरण में पहले से उपलब्ध नहीं हैं।
- दक्षता: कठिन और समय लेने वाले कार्य स्क्रिप्ट को सौंपकर अनगिनत घंटे बचाएँ।
- एकरूपता: सुनिश्चित करें कि हर बार विश्लेषण के समान चरण लागू हों।
IDAPython: शुरुआत करना
IDAPython लोकप्रिय डिसअसेंबलर IDA Pro के लिए Python स्क्रिप्टिंग API है। यह आपको IDA के डेटाबेस से संवाद करने, दृश्यों में बदलाव करने और जटिल कार्यप्रवाहों को स्वचालित करने देती है।
आमतौर पर आप दो मुख्य मॉड्यूल इम्पोर्ट करेंगे: idc (IDA जैसे C फ़ंक्शन) और idaapi (IDA API फ़ंक्शन)।
IDAPython: फ़ंक्शन की सूची बनाना
आइए, वर्तमान में लोड की गई बाइनरी के सभी फ़ंक्शन की सूची बनाने के लिए एक सरल IDAPython स्क्रिप्ट लिखें। इससे पता चलता है कि प्रोग्राम के फ़ंक्शन पर क्रम से कैसे चला जाता है।
import idc
print("Functions found in IDA Pro:")
func_ea = idc.get_first_func()
while func_ea != idc.BADADDR:
func_name = idc.get_func_name(func_ea)
print(f" 0x{func_ea:X}: {func_name}")
func_ea = idc.get_next_func(func_ea)
print("Script finished.")Ghidra स्क्रिप्टिंग: परिचय
एक अन्य शक्तिशाली रिवर्स इंजीनियरिंग उपकरण Ghidra भी स्क्रिप्टिंग का समर्थन करता है! आप Python (Jython का उपयोग करके) या Java में स्क्रिप्ट लिख सकते हैं।
Ghidra स्क्रिप्ट का प्रबंधन इसके अंतर्निर्मित Script Manager से किया जाता है, जिससे उन्हें चलाना और साझा करना आसान होता है।
Ghidra स्क्रिप्टिंग: फ़ंक्शन की सूची बनाना
यहाँ एक Ghidra Python स्क्रिप्ट है जो समान उद्देश्य पूरा करती है: वर्तमान में खुले प्रोग्राम के सभी फ़ंक्शन की सूची बनाना। ध्यान दें कि यह Ghidra के API से किस प्रकार संवाद करती है।
# Ghidra Python script
from ghidra.program.model.listing import Function
print("Functions found in Ghidra:")
functionManager = currentProgram.getFunctionManager()
functions = functionManager.getFunctions(True) # True for ascending order
for func in functions:
print(f" {func.getEntryPoint()}: {func.getName()}")
print("Script finished.")मुख्य स्क्रिप्टिंग ऑब्जेक्ट
IDA और Ghidra दोनों लोड की गई बाइनरी के साथ संवाद करने के लिए मुख्य ऑब्जेक्ट उपलब्ध कराते हैं:
- IDA:
idc(C जैसे फ़ंक्शन के लिए, जैसेget_func_name),idaapi(उच्च-स्तरीय API पहुँच के लिए)। - Ghidra:
currentProgram(लोड की गई बाइनरी),currentAddress(कर्सर का वर्तमान पता),monitor(प्रगति अपडेट के लिए)।
सूची बनाने से आगे: डेटा में बदलाव
स्क्रिप्टिंग केवल जानकारी पढ़ने के लिए नहीं है। आप विश्लेषण डेटाबेस में बदलाव भी कर सकते हैं!
- टिप्पणियाँ जोड़ना: पतों या फ़ंक्शन से उपयोगी टिप्पणियाँ जोड़ें।
- आइटम के नाम बदलना: चर, फ़ंक्शन या संरचनाओं को अर्थपूर्ण नाम दें।
- प्रकार लागू करना: डीकंपाइलेशन को बेहतर बनाने के लिए डेटा संरचनाएँ या फ़ंक्शन प्रोटोटाइप परिभाषित करें।
व्यावहारिक उपयोग के मामले
स्क्रिप्टिंग से आप और क्या कर सकते हैं?
- स्ट्रिंग निकालना: किसी विशिष्ट सेक्शन से पढ़ी जा सकने वाली सभी स्ट्रिंग अपने-आप निकालें।
- API कॉल की पहचान: किसी विशेष लाइब्रेरी फ़ंक्शन (जैसे,
CreateFileW) को की गई सभी कॉल खोजें। - पैटर्न मिलान: विशिष्ट बाइट अनुक्रम या निर्देश पैटर्न खोजें।
- हस्ताक्षर लागू करना: ज्ञात फ़ंक्शन हस्ताक्षर अपने-आप लागू करें।
स्क्रिप्टिंग लाभ जाँच
रिवर्स इंजीनियरिंग में स्क्रिप्टिंग के लाभों के बारे में हमने जो सीखा है, उसकी त्वरित जाँच का समय आ गया है।
पुनरावलोकन: स्क्रिप्टिंग की शक्ति
आपने रिवर्स इंजीनियरिंग स्क्रिप्टिंग की शक्तिशाली दुनिया में अपने पहले कदम रख लिए हैं!
- हमने जाना कि दक्षता और कस्टम विश्लेषण के लिए स्क्रिप्टिंग क्यों महत्वपूर्ण है।
- आपने IDAPython और Ghidra Python स्क्रिप्टिंग दोनों के बुनियादी उदाहरण देखे।
- हमने देखा कि स्क्रिप्ट विश्लेषण डेटाबेस से कैसे संवाद करती हैं और उनके सामान्य उपयोग के मामले क्या हैं।
अभ्यास करते रहें और अपनी RE यात्रा में और भी अधिक संभावनाएँ खोजें!
एआई शिक्षक के साथ Assembly सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “IDAPython और Ghidra स्क्रिप्टिंग” पाठ निःशुल्क है?
हाँ — रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “IDAPython और Ghidra स्क्रिप्टिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“IDAPython और Ghidra स्क्रिप्टिंग” में मैं क्या सीखूँगा?
दोहराए जाने वाले विश्लेषण कार्यों को स्वचालित करने और जानकारी निकालने के लिए IDA Pro और Ghidra हेतु Python स्क्रिप्ट लिखना सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“IDAPython और Ghidra स्क्रिप्टिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर रिवर्स इंजीनियरिंग और बाइनरी विश्लेषण की मूल बातें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- IDAPython और Ghidra स्क्रिप्टिंग
- डेटा संरचना पुनर्प्राप्ति का स्वचालन
- बाइनरी पैचिंग तकनीकें
- FLIRT सिग्नेचर और लाइब्रेरी फ़ंक्शन पहचान