
Vibe Reverse Engineer IDA Pro के साथ: लाइव वर्चुअल टेबल्स के माध्यम से SQL में IDA के लिए एक इंटरफ़ेस। दिखावे से धोखा न खाएं! :)
किसी भी AI एजेंट को कंपाइल किए गए बाइनरीज़ को समझने की क्षमता दें।
IDASQL, Elias Bachaalany द्वारा बनाया गया IDA Pro डेटाबेस के लिए एक SQL इंटरफ़ेस है। यह फ़ंक्शन, क्रॉस-रेफ़रेंस, स्ट्रिंग्स, टाइप्स, इम्पोर्ट्स, डिसअसेम्बली और डीकंपाइलेशन को कवर करने वाले 30+ वर्चुअल टेबल्स को एक्सपोज़ करता है। पूरी तरह से हेडलेस रूप से काम करने के लिए अपने कोडिंग एजेंट से /idasql स्किल्स का उपयोग करें -- एजेंट आपके लिए बैकग्राउंड में IDA चलाता है -- या IDA का UI खोलें और साथ में रिवर्स इंजीनियरिंग करने के लिए अपने कोडिंग एजेंट के साथ सहयोग करें। कोई IDAPython नहीं। कोई स्क्रिप्टिंग नहीं। बस SQL।
SQL क्यों? SQL वह सार्वभौमिक क्वेरी भाषा है जिसे हर AI एजेंट पहले से ही बोलता है। IDASQL एजेंट-अज्ञेयवादी है: Claude, ChatGPT, Copilot, Cursor, कस्टम एजेंट, या कोई एजेंट नहीं। कोई भी टूल जो SQL क्वेरी जारी कर सकता है, एक बाइनरी का विश्लेषण कर सकता है।
IDASQL एक ही समय में एक या अधिक डेटाबेस के बीच एनोटेशन का विश्लेषण, क्रॉस-रेफ़रेंसिंग और स्थानांतरण का समर्थन करता है। आप जो कर सकते हैं वह केवल आपकी कल्पना और आपके द्वारा उपयोग किए जाने वाले मॉडल की शक्ति से सीमित है।
IDA Pro में पहले से ही अपना डेटाबेस फ़ॉर्मेट है जो फ़ंक्शन, स्ट्रिंग्स, क्रॉस-रेफ़रेंस, टाइप्स और बहुत कुछ का वर्णन करता है। IDASQL इन आंतरिक संरचनाओं को लाइव SQL वर्चुअल टेबल्स में मैप करता है। कोई अलग एक्सपोर्टिंग या इंडेक्सिंग चरण नहीं है -- क्वेरीज़ सीधे IDA के डेटाबेस के विरुद्ध निष्पादित होती हैं और परिवर्तन लाइव प्रतिबिंबित होते हैं।
| मोड | कैसे शुरू करें | किसके लिए सर्वोत्तम |
|---|---|---|
| स्टैंडअलोन CLI | idasql -s binary.i64 -i | सीधा SQL, स्क्रिप्टिंग, पाइपलाइन्स |
| IDA प्लगइन | IDA के CLI ड्रॉपडाउन से idasql चुनें | GUI के अंदर SQL, लाइव डेटाबेस |
| स्किल वर्कफ़्लो | अपने कोडिंग CLI में /idasql:connect | AI-संचालित विश्लेषण -- एजेंट स्वायत्त रूप से SQL क्वेरीज़ जारी करता है |
You / Agent --> Natural language or SQL
|
/idasql skills (LLM translates intent to SQL)
|
IDASQL --> IDA database(s)
|
Results --> LLM summarizes & reasons
$ idasql -s WerFaultTool.exe.i64 -q "SELECT * FROM funcs LIMIT 5"
Opening: WerFaultTool.exe.i64...
Database opened successfully.
+------+-------------------------------------------------+------+----------+-------+
| addr | name | size | end_addr | flags |
+------+-------------------------------------------------+------+----------+-------+
| 16 | WerFaultTool.AboutForm::.ctor | 13 | 29 | 4096 |
| 32 | WerFaultTool.AboutForm::Dispose | 30 | 62 | 4096 |
| 64 | WerFaultTool.AboutForm::InitializeComponent | 295 | 359 | 4096 |
| 400 | WerFaultTool.WerFaultGUI::.ctor | 936 | 1336 | 4096 |
| 1344 | WerFaultTool.WerFaultGUI::CreateDynamicControls | 231 | 1575 | 4096 |
+------+-------------------------------------------------+------+----------+-------+
5 row(s)
एक कमांड। तत्काल परिणाम। कोई स्क्रिप्टिंग आवश्यक नहीं।
इंस्टॉल करने के बाद IDASQL CLI और प्लगइन, अपना पसंदीदा कोडिंग एजेंट शुरू करें और प्रॉम्प्टिंग द्वारा रिवर्स इंजीनियरिंग शुरू करें। IDASQL पूरी तरह से हेडलेस रूप से चलता है -- आपका एजेंट IDA Pro को ऑर्केस्ट्रेट करता है: शुरू करना, विश्लेषण करना, डीकंपाइल करना, एनोटेट करना, सहेजना -- या IDA GUI के अंदर होस्ट किया जाता है जहाँ आप अपने एजेंट के साथ वास्तविक समय में सहयोग करते हैं।
अपना पसंदीदा कोडिंग एजेंट खोलें (जैसे Claude Code) और टाइप करें:
/idasql:connect Please open sample_malware.exe in the background and let's analyze it together.
The agent IDASQL को बैकग्राउंड में हेडलेस रूप से शुरू करता है। इसके बाद, डेटाबेस के साथ स्वाभाविक रूप से चैट करें। उदाहरण के लिए:
/idasql:annotations Fully annotate the function I'm looking at, also use the decompiler skill.
मॉडल स्वायत्त रूप से फ़ंक्शन को समझने के लिए सर्वोत्तम दृष्टिकोण पर विचार करता है, पूरी तरह से इसे रिवर्स इंजीनियर करता है, और इसे एनोटेट करता है।
जब आप पूरा कर लें, तो एजेंट से सहेजने और बंद करने के लिए कहें:
/idasql:connect Please save all databases and shut down IDASQL.
आप एक साथ दो या अधिक डेटाबेस के साथ कार्य कर सकते हैं। अपने एजेंट को निर्देश दें:
/idasql:connect In this folder, there are many *.exe files. Please use parallel agents to open IDASQL in the background and report how many functions each has.
फिर आगे बढ़ें:
Tell me, how many strings all these databases have in common?
एजेंट एक ही समय में सभी डेटाबेस के साथ काम करता है। आप उनके बीच क्रॉस-रेफ़रेंस, तुलना और एनोटेशन स्थानांतरित कर सकते हैं।
ऊपर बताई गई सभी चीज़ें IDA GUI से समान रूप से काम करती हैं। अपने एजेंट को एक खुले IDA सत्र के साथ जोड़ने के लिए:
IDA के idasql> प्रॉम्प्ट में, टाइप करें:
.http start
IDA आउटपुट:
IDASQL HTTP server: http://127.0.0.1:8174
अपने कोडिंग एजेंट में:
/idasql:connect Let's work with this database: http://127.0.0.1:8174
अब IDASQL और आपका IDA UI जुड़े हुए हैं और साथ मिलकर काम कर रहे हैं।
IDA 9.4 के साथ, उत्तर सीधे IDA में लिंक कर सकते हैं। deep_links तालिका किसी भी
फ़ंक्शन, पते, स्ट्रिंग या प्रकार को IDA के अपने Copy Link प्रारूप में एक ida:// लिंक में बदल देती है,
साथ ही एक अतिरिक्त पैरामीटर, idb_path, जो डेटाबेस का पूर्ण पथ है। IDA इसे अनदेखा करता है; idasql का
क्लिक हैंडलर इसका उपयोग सही डेटाबेस पर IDA शुरू करने के लिए करता है। फ़ंक्शन लिंक डीकंपाइलर खोलते हैं (उसके बिना डिसअसेम्बली), अन्य लिंक डिसअसेम्बली खोलते हैं:
SELECT f.name, dl.uri
FROM funcs f
JOIN deep_links dl ON dl.resource = 'functions' AND dl.addr = f.addr AND dl.view = 'pseudocode'
ORDER BY f.size DESC LIMIT 5;
एक कोडिंग एजेंट इन्हें क्लिक करने योग्य नामों के रूप में प्रस्तुत करता है। क्लिक करने पर IDA खोलने के लिए:
idasql link register # handle ida:// links (a replaced handler, such as hcli's, is saved)
idasql link unregister # remove it and restore the saved handler
idasql link open -- "ida:///sample.exe.i64/functions?rva=0x1130&view=pseudocode"
idasql link list # running IDA 9.4 instances and their databases