Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
diaphora-mcp — MCP सर्वर स्वचालित बाइनरी डिफिंग के लिए। | Kitploit
उपकरण/GitHubGitHub/xteardx/diaphora-mcp
स्थैतिक विश्लेषणभेद्यता विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सफज़िंगबाइनरी विश्लेषणबाइनरी शोषण
GitHubxteardx/diaphora-mcp

diaphora-mcp

MCP सर्वर स्वचालित बाइनरी डिफिंग के लिए।

रिपॉजिटरी देखें
1731009 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

रूसी संस्करण

Diaphora MCP

अपने AI सहायक से दो IDA-विश्लेषित बाइनरी की तुलना करें। Diaphora MCP सहेजे गए IDA डेटाबेस को निर्यात करता है, Diaphora चलाता है, और AI को संबंधित फ़ंक्शन और उनके कॉल ग्राफ़ का निरीक्षण करने देता है।

डिफ़ॉल्ट इंटरफ़ेस में तुलना पर केंद्रित 10 टूल हैं। Diaphora मिलान प्रदान करता है; AI वास्तविक कोड पढ़ता है और परिवर्तनों की व्याख्या करता है।

त्वरित शुरुआत · उदाहरण · टूल · समस्या निवारण

old.i64 + new.i64 → headless export → SQLite exports + diff results
                                       ↓
                            summary → matched code → call graph

आवश्यकताएँ

  • Python 3.10+, idat.exe/idat64 के साथ IDA Pro, और एक इंस्टॉल किया गया Diaphora प्लगइन।
  • दोनों बाइनरी का विश्लेषण किया गया हो और .i64/.idb डेटाबेस के रूप में सहेजा गया हो।
  • एक स्थानीय MCP क्लाइंट, जैसे Codex, Claude Code या Cursor।
  • एक संगत Hex-Rays डीकंपाइलर केवल तभी यदि आप pseudocode चाहते हैं।

IDA और Diaphora अलग-अलग इंस्टॉल किए जाते हैं। Diff-schema सत्यापन वर्तमान में Diaphora 3.4.1 को लक्षित करता है; अन्य स्कीमाओं के लिए संगतता अपडेट की आवश्यकता हो सकती है। Diff के लिए उपयोग किए जाने वाले Python इंटरप्रेटर में Diaphora की standalone निर्भरताएँ इंस्टॉल होनी चाहिए।

त्वरित शुरुआत

1. इंस्टॉल करें और एक आउटपुट डायरेक्टरी बनाएँ

git clone https://github.com/xTeardx/diaphora-mcp.git
cd diaphora-mcp
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
New-Item -ItemType Directory -Force C:\diaphora-outputs | Out-Null

2. MCP सर्वर कनेक्ट करें

अपने क्लाइंट के MCP कॉन्फ़िगरेशन में यह प्रविष्टि जोड़ें। रिपॉज़िटरी, IDA और Diaphora पथों को अपने इंस्टॉलेशन पथों से बदलें। उस वातावरण से Python executable का उपयोग करें जहाँ आपने यह प्रोजेक्ट इंस्टॉल किया है।

{
  "mcpServers": {
    "diaphora": {
      "command": "C:/src/diaphora-mcp/.venv/Scripts/python.exe",
      "args": ["C:/src/diaphora-mcp/diaphora_mcp_server.py"],
      "env": {
        "IDAT_PATH": "C:/Program Files/IDA Professional 9.3/idat.exe",
        "DIAPHORA_DIR": "C:/Program Files/IDA Professional 9.3/plugins/diaphora",
        "DIAPHORA_OUTPUT_ROOT": "C:/diaphora-outputs"
      }
    }
  }
}

क्लाइंट stdio के माध्यम से सर्वर लॉन्च करता है; शुरू करने के लिए कोई अलग वेब सेवा नहीं है। इसके कोड या वातावरण बदलने के बाद MCP सर्वर को पुनः आरंभ करें। एक सफल कनेक्शन नीचे सूचीबद्ध 10 टूल को उजागर करता है।

3. अपने सहायक से फ़ाइलों की तुलना करने के लिए कहें

Use Diaphora to compare C:/analysis/old.i64 (old) against
C:/analysis/new.i64 (new). Save output under C:/diaphora-outputs/run-001.
Export headlessly with assembly detail, keep the exports, show a summary,
then inspect partial matches and explain the code changes in the interesting
functions. Use the result mapping when comparing functions and call graphs.

हर बार एक नई run डायरेक्टरी चुनें। मौजूदा जनरेट किए गए लक्ष्यों को कभी अधिलेखित नहीं किया जाता।

उदाहरण

निम्नलिखित JSON ब्लॉक MCP टूल आर्गुमेंट हैं, शेल कमांड नहीं। आपका सहायक नामित टूल को सीधे कॉल कर सकता है। पथ और 0x401000 उदाहरण हैं; अपने स्वयं के run द्वारा लौटाए गए पथ और पते का उपयोग करें।

1. दो IDA डेटाबेस निर्यात करें और तुलना करें

टूल: batch_export_and_diff। Old हमेशा पहला इनपुट होता है, new दूसरा।

{
  "idb1_path": "C:/analysis/old.i64",
  "idb2_path": "C:/analysis/new.i64",
  "output_dir": "C:/diaphora-outputs/run-001",
  "export_mode": "headless",
  "use_decompiler": false,
  "summaries_only": false,
  "cleanup": false,
  "limit": 100,
  "unmatched_limit": 50
}

यह Hex-Rays की आवश्यकता के बिना assembly विवरण रखता है। अपनी आवश्यकता का export प्रोफ़ाइल चुनें:

विवरणuse_decompilersummaries_onlyउपयोग
Matching summariesfalsetrueतेज़ पहला पास; कोई विस्तृत कोड नहीं
Assemblyfalsefalseडीकंपाइलर के बिना disassembly की तुलना करें
Assembly + pseudocodetruefalseसंगत Hex-Rays डीकंपाइलर के साथ कोड समीक्षा; धीमा

हमेशा प्रतिक्रिया से आउटपुट पथ लें:

OLD_SQLITE = steps.export1.output
NEW_SQLITE = steps.export2.output
RESULTS    = steps.diff.output

इस उदाहरण के लिए, जनरेट की गई फ़ाइलें run-001 के अंतर्गत old.diaphora.sqlite, new.diaphora.sqlite, और old_vs_new.diaphora हैं। समान इनपुट basenames अलग old_/new_ export नाम उत्पन्न करते हैं। बाद में फ़ंक्शन निरीक्षण के लिए cleanup=false रखें।

2. सारांश प्राप्त करें और परिवर्तित मिलानों का निरीक्षण करें

टूल: get_diff_summary।

{
  "results_path": "C:/diaphora-outputs/run-001/old_vs_new.diaphora"
}

टूल: get_diff_results। यह पृष्ठ कम-अनुपात वाले आंशिक मिलानों से शुरू होता है।

{
  "results_path": "C:/diaphora-outputs/run-001/old_vs_new.diaphora",
  "match_type": "partial",
  "min_ratio": 0.0,
  "limit": 50,
  "offset": 0,
  "unmatched_limit": 50,
  "unmatched_offset": 0,
  "sort_by": "ratio",
  "sort_order": "asc"
}

partial एक Diaphora मिलान श्रेणी चुनता है, व्यवहारिक परिवर्तन की गारंटी नहीं। सभी समर्थित श्रेणियों के लिए match_type="all" का उपयोग करें। प्रतिक्रिया में श्रेणी गणना, फ़िल्टर किया गया कुल, मिलान, unmatched पंक्तियाँ, next_offset और next_unmatched_offset शामिल हैं।

जारी रखने के लिए, लौटाए गए next offsets को अगली कॉल में कॉपी करें, समान फ़िल्टर और सॉर्ट रखते हुए। उदाहरण के लिए, यदि वे 50 और 50 हैं, तो offset=50 और unmatched_offset=50 का उपयोग करें। null next offset का अर्थ है कि वह सूची समाप्त हो गई है; उसे आगे बढ़ाना बंद करें। दोनों सूचियाँ स्वतंत्र रूप से आगे बढ़ती हैं। पृष्ठ आकार सकारात्मक होने चाहिए और 5000 पर सीमित हैं। सबसे मजबूत मिलानों को पहले देखने के लिए sort_order="desc" का उपयोग करें।

3. एक मिलान किए गए फ़ंक्शन और उसके ग्राफ़ की तुलना करें

टूल: compare_functions।

{
  "db1_path": "C:/diaphora-outputs/run-001/old.diaphora.sqlite",
  "db2_path": "C:/diaphora-outputs/run-001/new.diaphora.sqlite",
  "address": "0x401000",
  "match_results_path": "C:/diaphora-outputs/run-001/old_vs_new.diaphora"
}

प्रतिक्रिया में function_old, function_new, उपलब्ध assembly/pseudocode, मापे गए अंतर, और identity साक्ष्य शामिल हैं। आप address के बजाय name का उपयोग कर सकते हैं। यदि दोनों सेलेक्टर प्रदान किए जाते हैं, तो address को प्राथमिकता मिलती है; नाम से चयन करते समय इसे छोड़ दें।

टूल: get_changed_callgraph उपरोक्त समान आर्गुमेंट स्वीकार करता है। यह परिवर्तनों की रिपोर्ट करने से पहले संबंधित caller/callee पतों का अनुवाद करता है, और अनसुलझे पड़ोसियों को पुष्ट किए गए edge अंतरों से अलग करता है।

हेक्साडेसिमल इनपुट को स्पष्ट बनाने के लिए 0x-प्रीफ़िक्स्ड पतों को प्राथमिकता दें। उपलब्ध होने पर match_results_path प्रदान करें: यह rebasing और नाम बदले गए फ़ंक्शन को संभालता है। अकेले समान पते identity स्थापित नहीं करते। अस्पष्ट या अनुपलब्ध मिलान विलोपन कहे जाने के बजाय अनसुलझे रहते हैं। यदि आपने मैन्युअल रूप से एक जोड़ी सत्यापित की है, तो आप स्पष्ट रूप से address2 या name2 प्रदान कर सकते हैं।

4. एक फ़ंक्शन खोजें और उसका कोड पढ़ें

टूल: search_export_db। name_pattern SQL LIKE का उपयोग करता है: % किसी भी अनुक्रम से मेल खाता है।

{
  "db_path": "C:/diaphora-outputs/run-001/old.diaphora.sqlite",
  "name_pattern": "%parse%",
  "min_instructions": 20,
  "limit": 20
}

टूल: get_function_pseudocode अपने नाम के बावजूद उपलब्ध pseudocode और assembly लौटाता है।

{
  "db_path": "C:/diaphora-outputs/run-001/old.diaphora.sqlite",
  "address": "0x401000"
}

यदि pseudocode खाली है, तो एक संगत डीकंपाइलर का उपयोग करके use_decompiler=true और summaries_only=false के साथ एक नई run डायरेक्टरी में export को फिर से चलाएँ। export मेटाडेटा का निरीक्षण करने के लिए db_path के साथ get_export_info का उपयोग करें।

5. आपके पास पहले से मौजूद exports की तुलना करें

टूल: diff_diaphora_dbs। यह IDA export को छोड़ देता है और मौजूदा आधिकारिक SQLite exports की तुलना करता है।

टूल डाउनलोड करें