
Vibe Reverse Engineer with IDA SQL: लाइव वर्चुअल टेबल के माध्यम से 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 के डेटाबेस के विरुद्ध निष्पादित होती हैं और परिवर्तन लाइव परिलक्षित होते हैं।
|
/idasql skills (LLM translates intent to SQL)
|
IDASQL --> IDA database(s)
|
Results --> LLM summarizes & reasons
[](https://pepy.tech/project/pyfunceble-dev)
[](https://pepy.tech/project/pyfunceble)
[](https://sourcery.ai)
[](https://reddit.com/r/PyFunceble)
> डोमेन, आईपी या यूआरएल की उपलब्धता या वाक्यविन्यास जांचने का एक उपकरण।
PyFunceble एक उपकरण है जो डोमेन, आईपी पतों या यूआरएल की उपलब्धता या वाक्यविन्यास की जाँच करता है। इसे CI परिवेशों और निरंतर परीक्षण के लिए उपयोग किए जाने के लिए डिज़ाइन किया गया है। यह Python में लिखा गया है और कई डेटाबेस सिस्टम जैसे MySQL/MariaDB, PostgreSQL, SQLite, और स्थानीय संग्रहण के लिए JSON फ़ाइलों का भी समर्थन करता है।
## प्रायोजक
सभी प्रायोजकों का धन्यवाद! [प्रायोजक बनें](https://github.com/sponsors/funilrys)
## योगदान
अधिक जानकारी के लिए कृपया [CONTRIBUTING.md](https://github.com/allthingsida/idasql/blob/HEAD/CONTRIBUTING.md) फ़ाइल पढ़ें।```
$ 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.
एजेंट पृष्ठभूमि में IDASQL को बिना GUI के प्रारंभ करता है। इस बिंदु से, डेटाबेस के साथ स्वाभाविक रूप से चैट करें। उदाहरण के लिए:```
/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 UI के साथ कार्य करना
उपरोक्त सब कुछ IDA GUI से समान रूप से काम करता है। खुले IDA सत्र के साथ अपने एजेंट को संलग्न करने के लिए:
1. IDA के `idasql>` प्रॉम्प्ट में, टाइप करें: ```
.http start
अब IDASQL और आपका IDA UI जुड़े हुए हैं और साथ में काम कर रहे हैं।
IDASQL स्किल्स आपके कोडिंग एजेंट को प्राकृतिक भाषा के माध्यम से IDA डेटाबेस पर पूरा नियंत्रण देती हैं।
allthingsida/idasql-skills मार्केटप्लेस से इंस्टॉल किया जाता है।ida.exe Windows पर, ida macOS/Linux पर)idasql --version कमांड लाइन से काम करना चाहिएClaude Code के अंदर, चलाएँ:```text /plugin marketplace add allthingsida/idasql-skills
फिर उस मार्केटप्लेस से `idasql` प्लगइन इंस्टॉल करें। Codex और अन्य इंस्टॉल पथों के लिए [idasql-skills README](https://github.com/allthingsida/idasql-skills#installation) देखें।
#### Skills
| Skill | Description |
|-------|-------------|
| `connect` | IDA डेटाबेस से कनेक्ट करें: CLI, HTTP सर्वर, सत्र बूटस्ट्रैप, स्किल रूटिंग, वैश्विक कॉन्ट्रैक्ट। |
| `disassembly` | IDA डिसअसेम्बली क्वेरी करें: फ़ंक्शन, सेगमेंट, निर्देश, ब्लॉक, ऑपरेंड, ग्राफ़। |
| `data` | IDA स्ट्रिंग्स, बाइट्स और बाइनरी डेटा क्वेरी करें: खोज, रिबिल्ड, बाइट पैटर्न। |
| `xrefs` | IDA क्रॉस-रेफरेंस का विश्लेषण करें: कॉलर, कैली, इम्पोर्ट्स, डेटा रेफ्स, grep खोज। |
| `decompiler` | IDA फ़ंक्शन डीकंपाइल करें: pseudocode, ctree AST, लोकल वेरिएबल्स, लेबल। |
| `annotations` | IDA डेटाबेस संपादित करें: कमेंट, रीनाम, टाइप्स, बुकमार्क, enum/struct रेंडरिंग। |
| `types` | IDA टाइप सिस्टम: structs, unions, enums, typedefs, parse_decls बनाना/संशोधित करना/लागू करना। |
| `debugger` | IDA डीबगर: ब्रेकपॉइंट्स, बाइट पैचिंग, कंडीशन, पैच इन्वेंटरी। |
| `storage` | netnode_kv के माध्यम से IDA डेटाबेस में स्थायी key-value स्टोरेज। |
| `idapython` | idasql के माध्यम से IDAPython निष्पादित करें: snippets, सैंडबॉक्स, आउटपुट कैप्चर। |
| `functions` | संपूर्ण idasql SQL फ़ंक्शन संदर्भ सूची। |
| `analysis` | IDA बाइनरीज़ का विश्लेषण करें: triage, सुरक्षा ऑडिट, क्रिप्टो/नेटवर्क पहचान, मल्टी-टेबल क्वेरीज़। |
| `resource` | IDA बाइनरीज़ को री-सोर्स करें: रिकर्सिव एनोटेशन, संरचना पुनर्प्राप्ति, टाइप पुनर्निर्माण। |
| `ui-context` | लाइव IDA UI संदर्भ कैप्चर करें: स्क्रीन, चयन, widget फ़ोकस, एड्रेस एंकर। |
#### Example Prompts```
/idasql:analysis analyze this binary; tell me the most called functions.
/idasql:data find functions that reference "password" strings and rank by xrefs.
/idasql:xrefs show callers of CreateFileW and summarize error handling.
/idasql:data identify suspicious hardcoded URLs and the functions that reference them.
/idasql क्षमताएँ आपके कोडिंग CLI से विश्लेषण को संचालित करती हैं -- कोई IDAPython स्क्रिप्टिंग आवश्यक नहीं है।
idasql v0.0.18 - SQL interface to IDA databases
Usage: idasql -s [-q ] [-f ] [-i] [--export ]
Options: -s IDA database (.idb/.i64) OR raw binary (.exe/.dll/firmware/etc.) — raw binaries trigger fresh idalib analysis and string-list rebuild — legacy 32-bit .idb files upgrade to .i64 and require an explicit reopen --token Auth token for HTTP/MCP server mode (if server requires it) -q Execute SQL query or semicolon-separated script -f Execute SQL from file -i Interactive REPL mode -w, --write Save database on exit (persist changes) --export Export tables to SQL file (local mode only) --export-tables=X Tables to export: * (all, default) or table1,table2,... --http [port] Start HTTP REST server (default: 8080, local mode only) --bind Bind address for HTTP/MCP server (default: 127.0.0.1) --mcp [port] Start MCP server (default: random port, use in -i mode) Or use .mcp start in interactive mode -h, --help Show this help --version Show version
Examples: idasql -s test.i64 -q "SELECT name, size FROM funcs LIMIT 10" idasql -s test.i64 -q "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;" idasql -s test.i64 -f queries.sql idasql -s test.i64 -i idasql -s test.i64 --export dump.sql idasql -s test.i64 --http 8080 idasql -s sample.exe --http # raw PE: idalib auto-analyzes, then serves SQL (default port 8080) idasql -s firmware.bin -q "SELECT * FROM binary" idasql -s test.i64 --mcp 9000
Thank you for using IDA. Have a nice day!
पुराने 32-बिट `.idb` इनपुट idalib द्वारा एक सहोदर `.i64` में अपग्रेड किए जाते हैं। जब ऐसा
होता है, idasql SQL परोसने से पहले बाहर निकलता है, एग्ज़िट कोड `3` लौटाता है, और एक
JSON ऑब्जेक्ट stdout पर `status:"upgraded"` और `reopen_with` के साथ प्रिंट करता है। वही
ऑपरेशन `-s <reopen_with>` के साथ दोहराएँ।
</details>
### स्रोत से निर्माण
#### पूर्वापेक्षाएँ
- CMake 3.20+
- C++20 कंपाइलर
- IDA SDK 9.0+ (`IDASDK` पर्यावरण चर सेट करें)```bash
cmake -S . -B build -DIDASQL_WITH_MCP=ON -DIDASQL_BUILD_EXAMPLES=OFF
cmake --build build --config Release
उपयोगी CMake स्विच:
| मोड | कैसे शुरू करें | किसके लिए सर्वोत्तम |
|---|
| स्टैंडअलोन CLI | idasql -s binary.i64 -i | डायरेक्ट SQL, स्क्रिप्टिंग, पाइपलाइन |
| IDA प्लगिन | IDA की CLI ड्रॉपडाउन से idasql चुनें | GUI के अंदर SQL, लाइव डेटाबेस |
| स्किल वर्कफ़्लो | अपने कोडिंग CLI में /idasql:connect | AI-संचालित विश्लेषण -- एजेंट स्वायत्त रूप से SQL क्वेरी जारी करता है |
| You / Agent --> Natural language or SQL |
| Switch | Default | Description |
|---|---|---|
IDASQL_WITH_MCP | ON | fastmcpp के माध्यम से MCP सर्वर समर्थन बनाएँ। छोटे/ऑफ़लाइन बिल्ड के लिए या जब आपको --mcp / .mcp की आवश्यकता न हो तो अक्षम करें। |
IDASQL_BUILD_CLI | ON | स्टैंडअलोन idasql कमांड-लाइन टूल बनाएँ। |
IDASQL_BUILD_PLUGIN | ON | IDA प्लगइन बनाएँ। |
IDASQL_BUILD_EXAMPLES | ON | examples/ के अंतर्गत उदाहरण प्रोग्राम बनाएँ। |
नोट्स:
--http या REPL/प्लगइन CLI से .http start का उपयोग करें।PRAGMA idasql.enable_idapython = 1; के साथ सक्षम करें।IDASQL_WITH_MCP=ON fastmcpp प्राप्त करता है; OFF MCP समर्थन और --mcp / .mcp कमांड हटा देता है।XSQL_WITH_THINCLIENT को ON के लिए बाध्य किया गया है, और HTTPLIB_USE_OPENSSL_IF_AVAILABLE को OFF के लिए बाध्य किया गया है क्योंकि IDASQL स्थानीय सादा HTTP उपयोग करता है।30+ वर्चुअल तालिकाएँ जो फ़ंक्शन, स्ट्रिंग, प्रकार, क्रॉस-रेफरेंस, डिसअसेम्बली, डीकंपिलेशन, और अधिक को कवर करती हैं।
| Table | Description |
|---|---|
funcs | फ़ंक्शन - name, addr, size, end addr, flags (INSERT/UPDATE/DELETE) |
segments | सेगमेंट - name, start/end addr, permissions, class (INSERT/UPDATE/DELETE) |
names | नामित स्थान - addr, name, flags (INSERT/UPDATE/DELETE) |
entries | एंट्री पॉइंट - export/program/tls callbacks (ordinal, addr, name) |
imports | इम्पोर्ट - module, name, addr, ordinal |
xrefs | क्रॉस-रेफरेंस - from/to addr, type, is_code |
blocks | बेसिक ब्लॉक - start/end addr, func_addr, size |
fchunks | फ़ंक्शन चंक - स्वामी के साथ split/tail चंक |
instructions | डिसअसेम्बली - addr, mnemonic, operands, itype, func_addr (UPDATE operand format_spec / DELETE) |
instruction_operands | सामान्यीकृत इंस्ट्रक्शन ऑपरेंड - opnum, text, type, value; addr और func_addr द्वारा अनुकूलित |
heads | सभी head आइटम (कोड + डेटा) - अनुकूलित एड्रेस लुकअप/रेंज नेविगेशन |
| Table | Description |
|---|---|
strings | स्ट्रिंग्स - addr, content, length, type |
bytes | रॉ बाइट्स - value/word/dword/qword लिखने योग्य (UPDATE पैच करता है, DELETE वापस लाता है), original_value, is_patched (WHERE is_patched = 1 के माध्यम से तेज़ पैच गणना) |
| Table | Description |
|---|---|
pseudocode | Hex-Rays के माध्यम से डीकंपाइल किया गया स्यूडोकोड |
ctree | Hex-Rays ctree AST नोड्स |
ctree_lvars | Hex-Rays डीकंपिलेशन से स्थानीय चर |
ctree_call_args | प्रति कॉल साइट Hex-Rays कॉल तर्क विवरण |
ctree_labels | Hex-Rays ctree लेबल (goto लक्ष्य) |
| Table | Description |
|---|---|
types | प्रकार लाइब्रेरी - सदस्यों के साथ structs, unions, enums (INSERT/UPDATE/DELETE) |
types_members | Struct/union सदस्य विवरण (INSERT/UPDATE/DELETE) |
types_enum_values | Enum सदस्य मान (INSERT/UPDATE/DELETE) |
types_func_args | फ़ंक्शन प्रकार तर्क विवरण |
local_types | स्थानीय प्रकार लाइब्रेरी प्रविष्टियाँ |
| Table | Description |
|---|---|
comments | टिप्पणियाँ - addr, नियमित और दोहराने योग्य टिप्पणियाँ (INSERT/UPDATE/DELETE) |
bookmarks | बुकमार्क - slot, addr, विवरण (INSERT/UPDATE/DELETE) |
breakpoints | ब्रेकपॉइंट - addr, type, enabled, condition (पूर्ण CRUD) |
hidden_ranges | संक्षिप्त/छिपी रेंज - start/end, विवरण, header, footer |
| Table | Description |
|---|---|
grep | एकीकृत एंटिटी खोज तालिका (pattern, name, kind, addr, ordinal, parent_name, full_name) |
| Table | Description |
|---|---|
binary | डेटाबेस सारांश/अवलोकन - processor, bitness, एड्रेस रेंज, गणना |
db_info | डेटाबेस मेटाडेटा कुंजी-मान जोड़े |
ida_info | IDA विश्लेषण जानकारी कुंजी-मान जोड़े |
problems | IDA विश्लेषण समस्याएँ/चेतावनी |
signatures | FLIRT सिग्नेचर स्थिति |
fixups | Fixup/रिलोकेशन प्रविष्टियाँ |
mappings | एड्रेस स्पेस मैपिंग |
| Table | Description |
|---|---|
netnode_kv | स्थायी कुंजी-मान भंडारण (netnode) |
| Table | Description |
|---|---|
disasm_calls | कॉल ग्राफ - प्रति फ़ंक्शन caller/callee जोड़े |
disasm_loops | लूप पहचान - header ब्लॉक और बैक एज |
| Function | Description |
|---|---|
decompile(addr) | एड्रेस पर फ़ंक्शन डीकंपाइल करें (स्यूडोकोड लौटाता है) |
disasm_at(addr) | एड्रेस पर कैननिकल डिसअसेम्बली सूची |
get_ui_context_json() | UI कॉन्टेक्स्ट JSON — GUI प्लगइन में लाइव; CLI/idalib के अंतर्गत एक "लागू नहीं" स्टब |
नामित फ़ंक्शन, लेबल, सेगमेंट, प्रकार और सदस्यों पर संयोजनीय SQL खोजों के लिए grep तालिका का उपयोग करें।```sql
-- Search anything starting with "Create"
SELECT name, kind, printf('0x%X', addr) as addr
FROM grep
WHERE pattern = 'Create%'
LIMIT 20;
-- Search anywhere in name (plain text performs a contains search) SELECT name, kind, full_name FROM grep WHERE pattern = 'File' AND kind IN ('function', 'import') LIMIT 20;
-- Find struct members SELECT name, parent_name, full_name FROM grep WHERE pattern = 'dw%' AND kind = 'member';
-- Pagination SELECT name, kind, full_name FROM grep WHERE pattern = 'Create%' ORDER BY kind, name LIMIT 20 OFFSET 20;
## एकीकरण
### HTTP REST API
सरल एकीकरण के लिए स्टेटलेस HTTP सर्वर। कोई प्रोटोकॉल ओवरहेड नहीं।```bash
idasql -s database.i64 --http 8080
The input chunk is empty—no source content was provided after "INPUT:". Please supply the Markdown content for chunk 33 so it can be translated.```bash curl http://localhost:8080/status curl -X POST http://localhost:8080/query -d "SELECT name FROM funcs LIMIT 5" curl -X POST http://localhost:8080/query -d "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;"
सभी `/query` प्रतिक्रियाएँ विहित स्क्रिप्ट आवरण का उपयोग करती हैं — एकल कथन = एक प्रविष्टि की सरणी:```
{
"success": true,
"statement_count": <N>,
"results": [
{ "statement_index": 0, "success": true, "columns": [...], "rows": [...], "row_count": <N>, "elapsed_ms": <ms>, "error": null },
...
],
"row_count_total": <N>,
"elapsed_ms_total": <ms>,
"first_error_index": null
}
Fail-fast डिफ़ॉल्ट है; पिछली विफलताओं की परवाह किए बिना हर स्टेटमेंट चलाने के लिए continue_on_error=true (जैसे ?continue_on_error=1) पास करें। प्रत्येक results[i].error प्रति-स्टेटमेंट विफलताओं के लिए प्रामाणिक है; first_error_index सबसे पहली विफलता की ओर इशारा करता है या null होता है। स्प्लिटर विफलता (जैसे एक अनटर्मिनेटेड कोट) पर प्रतिक्रिया success:false, statement_count:0, results:[], और एक शीर्ष-स्तरीय parse_error होती है।
कई डेटाबेस के लिए, अलग-अलग इंस्टेंस चलाएँ:```bash idasql -s malware.i64 --http 8080 idasql -s kernel.i64 --http 8082
एंडपॉइंट्स: `/status`, `/help`, `/query`, `/shutdown`
#### REPL से HTTP सर्वर
REPL या IDA प्लगइन CLI से इंटरैक्टिव रूप से HTTP सर्वर प्रारंभ करें:```
idasql -s database.i64 -i
idasql> .http start
HTTP server started on port 8142
URL: http://127.0.0.1:8142
...
Press Ctrl+C to stop and return to REPL.
IDA प्लगइन में (गैर-अवरोधक):``` idasql> .http start HTTP server started on port 8142 idasql> .http stop HTTP server stopped
सर्वर `--http` के साथ टकराव से बचने के लिए एक यादृच्छिक पोर्ट (8100-8199) का उपयोग करता है।
### ऑटोस्टार्ट (पिनिंग)
`.pin` IDB (netnode `$ idasql config`) में एक सर्वर प्राथमिकता संग्रहीत करता है, ताकि जब भी वह डेटाबेस खोला जाए, **IDA प्लगइन स्वतः एक HTTP या MCP सर्वर प्रारंभ करे** — यह मल्टी-इंस्टेंस सेटअप के लिए उपयोगी है जहाँ प्रत्येक डेटाबेस एक स्थिर, ज्ञात पोर्ट बनाए रखता है।```
idasql> .pin set http 8080 # pin HTTP at 127.0.0.1:8080 (autostart on)
idasql> .pin set mcp 0.0.0.0 9500 # bind override + port (port optional; omit or 0 = fresh random port each launch)
idasql> .pin list # show pinned config
idasql> .pin off http # disable autostart but keep host/port
idasql> .pin clear all # remove all pins
पिन करने के बाद, डेटाबेस को दोबारा खोलने पर सर्वर अपने आप शुरू हो जाता है — आप इसे लोड होने पर IDA आउटपुट विंडो में देखेंगे:``` IDASQL v0.0.18: Query engine initialized IDASQL CLI: Installed IDASQL: autostart -> IDASQL HTTP server: http://127.0.0.1:8099 Type '.http stop' to stop the server.
`.pin` (या `.pin list`) दोनों सेवाओं के लिए वर्तमान कॉन्फ़िगरेशन दिखाता है:```
idasql> .pin
Autostart pins:
http 127.0.0.1:8099 (autostart: on)
mcp (not set)
.pin कमांड स्वयं
CLI और प्लगइन दोनों में काम करता है (CLI केवल पिन को पढ़ता/लिखता है)।.http start / .mcp start बिना स्पष्ट पोर्ट के पिन किए गए होस्ट/पोर्ट का पुन: उपयोग करते हैं।.pin परिवर्तन केवल तभी स्थायी होते हैं जब -w/--write के साथ प्रारंभ किया गया हो
(किसी भी अन्य IDB संपादन की तरह)।MCP-संगत क्लाइंट्स के लिए (Model Context Protocol, AI टूल एकीकरण के लिए एक मानक):
--mcp और .mcp तब उपलब्ध होते हैं जब -DIDASQL_WITH_MCP=ON के साथ बिल्ड किया जाता है, जो डिफ़ॉल्ट है। MCP समर्थन छोड़ने के लिए -DIDASQL_WITH_MCP=OFF के साथ बिल्ड करें।```bash
idasql -s database.i64 --mcp idasql -s database.i64 --mcp 9500 # specific port
idasql -s database.i64 -i .mcp start
अपना MCP क्लाइंट कॉन्फ़िगर करें:```json
{
"mcpServers": {
"idasql": { "url": "http://127.0.0.1:<port>/sse" }
}
}
उपकरण: idasql_query (प्रत्यक्ष SQL क्वेरी या सेमीकोलन-पृथक स्क्रिप्ट)
IDASQL टूलों के एक परिवार का हिस्सा है जो साझा libxsql वर्चुअल-टेबल फ्रेमवर्क पर निर्मित, समान SQL सतह के माध्यम से विभिन्न बाइनरी-विश्लेषण और डीबग-जानकारी प्लेटफ़ॉर्म को उजागर करता है। जो क्वेरी आप एक टूल के विरुद्ध सीखते हैं वह काफी हद तक दूसरों पर भी लागू होती है — उदाहरण के लिए, वही SELECT name, size FROM funcs ORDER BY size DESC LIMIT 10 हर जगह चलती है।
रिवर्स-इंजीनियरिंग प्लेटफ़ॉर्म
डीबग जानकारी और कंपाइलर डेटा
कोर
libxsql - हेडर-ओनली C++17 लाइब्रेरी जो C++ डेटा संरचनाओं को SQLite वर्चुअल टेबल के रूप में प्रस्तुत करती है। टेबल परिभाषित करने हेतु फ्लूएंट बिल्डर API, कंस्ट्रेंट पुशडाउन और HTTP थिन-क्लाइंट समर्थन प्रदान करती है।
fastmcpp - वैकल्पिक MCP सर्वर इम्प्लीमेंटेशन, जो -DIDASQL_WITH_MCP=ON के साथ बिल्ड करते समय उपयोग किया जाता है।
संक्षेप में: आप बिना संशोधित idasql को पढ़ सकते हैं, बिल्ड कर सकते हैं, मूल्यांकन कर सकते हैं, बेंचमार्क कर सकते हैं, पैकेज कर सकते हैं और उपयोग कर सकते हैं — व्यावसायिक रूप से भी — बशर्ते आप सूचनाएँ बनाए रखें और लाइसेंस की शर्तों का पालन करें। आप लाइसेंस के योगदान-उद्देश्य नियमों के अंतर्गत पुनः योगदान हेतु बग फिक्स, ऑप्टिमाइज़ेशन, सुविधाएँ, टेस्ट या दस्तावेज़ सुधार तैयार करने के लिए इसे फोर्क या पैच कर सकते हैं।
आप Elias Bachaalany से पूर्व लिखित अनुमति के बिना कोई विचलित निजी फोर्क, पोर्ट, रीब्रांड, क्लोन, API-संगत विकल्प या प्रतिस्पर्धी इम्प्लीमेंटेशन बनाए नहीं रख सकते, और न ही किसी व्युत्पन्न इम्प्लीमेंटेशन को पुनर्निर्मित या बेहतर बनाने के लिए idasql को AI इनपुट के रूप में उपयोग कर सकते हैं। स्वतंत्र इम्प्लीमेंटेशन जो लाइसेंस में परिभाषित अर्थों में idasql से कॉपी नहीं किए गए हैं, भौतिक रूप से व्युत्पन्न नहीं हैं, या जिन्हें idasql से पर्याप्त रूप से प्रभावित नहीं माना जाता, वे प्रतिबंधित नहीं हैं।
अनुमति अनुरोध: allthingsida/idasql/issues पर GitHub issue खोलें।
यदि idasql किसी वितरित प्रोजेक्ट को भौतिक रूप से प्रभावित करता है, तो मानव उत्पत्ति बनाए रखें: जहाँ लागू हो, अपने README/दस्तावेज़ों और About/क्रेडिट UI में idasql और Elias Bachaalany को दृश्य रूप से श्रेय दें। लाइसेंस में सामान्य अनुमत और अनुमति-आवश्यक उपयोगों के लिए एक examples/FAQ अनुभाग शामिल है। तृतीय-पक्ष निर्भरताएँ (libxsql, IDA SDK, और उनकी ट्रांज़िटिव निर्भरताएँ) अपने स्वयं के लाइसेंसों के अधीन रहती हैं।
पूरा Human-Origin Source License v1.0 देखें।