jtang613/gidrassistmcp: gidra এর জন্য একটি এমসিপি এক্সটেনশন

jtang613/gidrassistmcp: gidra এর জন্য একটি এমসিপি এক্সটেনশন

একটি শক্তিশালী ঘিদ্রা এক্সটেনশন যা একটি এমসিপি (মডেল প্রসঙ্গ প্রোটোকল) সার্ভার সরবরাহ করে, এআই সহায়ক এবং অন্যান্য সরঞ্জামগুলিকে একটি মানক এপিআইয়ের মাধ্যমে গিড্রার বিপরীত প্রকৌশল ক্ষমতাগুলির সাথে যোগাযোগ করতে সক্ষম করে।

Gidrassistmcp এআই-চালিত বিশ্লেষণ সরঞ্জাম এবং গিড্রার বিস্তৃত বিপরীত প্রকৌশল প্ল্যাটফর্মের মধ্যে ব্যবধানকে কমিয়ে দেয়। মডেল প্রসঙ্গ প্রোটোকলটি বাস্তবায়নের মাধ্যমে, এই এক্সটেনশানটি বহিরাগত এআই সহকারী, স্বয়ংক্রিয় বিশ্লেষণ সরঞ্জাম এবং কাস্টম স্ক্রিপ্টগুলিকে নির্বিঘ্নে গিদ্রার বিশ্লেষণ ক্ষমতাগুলির সাথে যোগাযোগের অনুমতি দেয়।

  • ** এমসিপি সার্ভার ইন্টিগ্রেশন **: অফিসিয়াল এসডিকে ব্যবহার করে সম্পূর্ণ মডেল প্রসঙ্গ প্রোটোকল সার্ভার বাস্তবায়ন
  • ** 31 অন্তর্নির্মিত সরঞ্জাম **: ফাংশন, ডেটা, ক্রস-রেফারেন্স এবং আরও অনেক কিছু কভার করে বিশ্লেষণ সরঞ্জামগুলির বিস্তৃত সেট
  • ** কনফিগারযোগ্য ইউআই **: সরঞ্জামগুলি পরিচালনা এবং পর্যবেক্ষণ ক্রিয়াকলাপের জন্য সহজেই ব্যবহারযোগ্য ইন্টারফেস
  • ** রিয়েল-টাইম লগিং **: বিশদ লগিং সহ সমস্ত এমসিপি অনুরোধ এবং প্রতিক্রিয়াগুলি ট্র্যাক করুন
  • ** ডায়নামিক টুল ম্যানেজমেন্ট **: অবিচ্ছিন্ন সেটিংসের সাথে স্বতন্ত্রভাবে সরঞ্জামগুলি সক্ষম/অক্ষম করুন
  • ** বর্তমান প্রসঙ্গ সচেতনতা **: যে সরঞ্জামগুলি গিড্রার বর্তমান কার্সার অবস্থান এবং সক্রিয় ফাংশন বোঝে

স্ক্রিনশট
স্ক্রিনশট

  • গাইড 11.4+ (গিড্রা 11.4 জনসাধারণের সাথে পরীক্ষিত)
  • একজন এমসিপি ক্লায়েন্ট (যেমন গিড্র্যাসিস্ট)

বাইনারি রিলিজ (প্রস্তাবিত)

  1. সর্বশেষ রিলিজ ডাউনলোড করুন::

    • রিলিজ পৃষ্ঠায় যান
    • সর্বশেষ ডাউনলোড করুন .zip ফাইল (যেমন, GhidrAssistMCP-v1.0.0.zip)
  2. এক্সটেনশন ইনস্টল করুন::

    • ঘিদ্রায়: ফাইল → এক্সটেনশন ইনস্টল করুন → এক্সটেনশন যুক্ত করুন
    • ডাউনলোড জিপ ফাইল নির্বাচন করুন
    • অনুরোধ করা হলে গিড্রা পুনরায় চালু করুন
  3. প্লাগইন সক্ষম করুন::

    • ফাইল → কনফিগার → প্লাগইনগুলি কনফিগার করুন
    • “Gidrassistmcp” অনুসন্ধান করুন
    • প্লাগইন সক্ষম করতে বাক্সটি পরীক্ষা করুন
  1. সংগ্রহস্থলটি ক্লোন করুন::

    git clone <repository-url>
    cd GhidrAssistMCP
  2. গিড্রা ইনস্টলেশন পথ সেট করুন::

    export GHIDRA_INSTALL_DIR=/path/to/your/ghidra/installation
  3. এক্সটেনশন তৈরি করুন::

  4. এক্সটেনশন ইনস্টল করুন::

    • উত্পন্ন জিপ ফাইল থেকে অনুলিপি করুন dist/ ডিরেক্টরি
    • ঘিদ্রায়: ফাইল → এক্সটেনশন ইনস্টল করুন → এক্সটেনশন যুক্ত করুন
    • জিপ ফাইলটি নির্বাচন করুন এবং ঘিদ্রা পুনরায় চালু করুন
  5. প্লাগইন সক্ষম করুন::

    • ফাইল → কনফিগার → প্লাগইনগুলি কনফিগার করুন
    • “Gidrassistmcp” অনুসন্ধান করুন
    • প্লাগইন সক্ষম করতে বাক্সটি পরীক্ষা করুন
  1. নিয়ন্ত্রণ প্যানেল খুলুন::

    • উইন্ডো → gidrassistmcp (বা টুলবার আইকনটি ব্যবহার করুন)
  2. সার্ভার সেটিংস কনফিগার করুন::

    • হোস্ট: ডিফল্ট হয় localhost
    • বন্দর: ডিফল্ট হয় 8080
    • সক্ষম/অক্ষম: এমসিপি সার্ভারটি চালু/বন্ধ টগল করুন

কনফিগারেশন ট্যাব আপনাকে অনুমতি দেয়:

  • সমস্ত উপলব্ধ সরঞ্জাম দেখুন (মোট 29)
  • স্বতন্ত্র সরঞ্জামগুলি সক্ষম/অক্ষম করুন চেকবক্সগুলি ব্যবহার করে
  • কনফিগারেশন সংরক্ষণ করুন সেশন জুড়ে অবিচল
  • সরঞ্জামের স্থিতি নিরীক্ষণ করুন রিয়েল-টাইমে
  • get_program_info – বেসিক প্রোগ্রামের তথ্য পান
  • list_functions – প্রোগ্রামে সমস্ত ফাংশন তালিকাভুক্ত করুন
  • list_data – ডেটা সংজ্ঞা তালিকা
  • list_strings – স্ট্রিং রেফারেন্স তালিকা
  • list_imports – আমদানি করা ফাংশন তালিকা
  • list_exports – রফতানি ফাংশন তালিকা
  • list_segments – মেমরি বিভাগগুলি তালিকা করুন
  • list_namespaces – নেমস্পেসগুলি তালিকা করুন
  • list_classes – শ্রেণীর সংজ্ঞা তালিকা
  • list_methods – পদ্ধতি সংজ্ঞা তালিকা
  • get_function_info – বিশদ ফাংশন তথ্য পান
  • get_class_info – বিশদ শ্রেণীর তথ্য পান
  • get_function_by_address – নির্দিষ্ট ঠিকানায় ফাংশন সন্ধান করুন
  • get_current_function – কার্সার পজিশনে ফাংশন পান
  • decompile_function – সি-এর মতো কোডে ডিকম্পাইল ফাংশন
  • disassemble_function – সমাবেশ বিচ্ছিন্ন করুন
  • search_functions – নাম প্যাটার্ন দ্বারা অনুসন্ধান ফাংশন
  • search_classes – নাম প্যাটার্ন অনুসারে ক্লাস অনুসন্ধান করুন
  • function_xrefs – ক্রস-রেফারেন্স ফাংশন পান
  • get_current_address – বর্তমান কার্সার ঠিকানা পান
  • xrefs_to – একটি ঠিকানার উল্লেখগুলি সন্ধান করুন
  • xrefs_from – একটি ঠিকানা থেকে রেফারেন্স সন্ধান করুন
  • rename_function – ফাংশন নামকরণ
  • rename_function_by_address – নির্দিষ্ট ঠিকানায় ফাংশনটির নাম পরিবর্তন করুন
  • rename_variable – ভেরিয়েবলগুলির নাম পরিবর্তন করুন
  • rename_data – ডেটা সংজ্ঞা পুনরায় নামকরণ করুন
  • set_function_prototype – ফাংশন স্বাক্ষর সেট করুন
  • set_local_variable_type – পরিবর্তনশীল ডেটা প্রকারগুলি সেট করুন
  • set_disassembly_comment – বিচ্ছিন্ন মন্তব্য যুক্ত করুন
  • set_decompiler_comment – ডেকম্পিলার মন্তব্য যুক্ত করুন
  • auto_create_struct – স্বয়ংক্রিয়ভাবে পরিবর্তনশীল ব্যবহারের নিদর্শনগুলি থেকে কাঠামো তৈরি করুন

বেসিক প্রোগ্রামের তথ্য

{
  "method": "tools/call",
  "params": {
    "name": "get_program_info"
  }
}
{
  "method": "tools/call",
  "params": {
    "name": "get_function_info",
    "arguments": {
      "function_name": "main"
    }
  }
}
{
  "method": "tools/call",
  "params": {
    "name": "decompile_function",
    "arguments": {
      "function_name": "encrypt_data"
    }
  }
}
{
  "method": "tools/call",
  "params": {
    "name": "auto_create_struct",
    "arguments": {
      "function_identifier": "0x00401000",
      "variable_name": "ctx"
    }
  }
}

ফাংশন প্রোটোটাইপ সেট করা

{
  "method": "tools/call",
  "params": {
    "name": "set_function_prototype",
    "arguments": {
      "function_address": "0x00401000",
      "prototype": "int main(int argc, char** argv)"
    }
  }
}
GhidrAssistMCP/
├── GhidrAssistMCPPlugin      # Main plugin entry point
├── GhidrAssistMCPServer      # HTTP/SSE MCP server
├── GhidrAssistMCPBackend     # Tool management and execution
├── GhidrAssistMCPProvider    # UI component provider
└── tools/                    # Individual MCP tools
    ├── Analysis Tools/
    ├── Modification Tools/
    └── Navigation Tools/

এমসিপি প্রোটোকল বাস্তবায়ন

  • পরিবহন: সার্ভার-সিনেন্ট ইভেন্টগুলি সহ এইচটিটিপি (এসএসই)
  • শেষ পয়েন্ট::
    • GET /sse – দ্বি নির্দেশমূলক যোগাযোগের জন্য এসএসই সংযোগ
    • POST /message – বার্তা বিনিময় শেষ পয়েন্ট
  • সরঞ্জাম নিবন্ধকরণ: গতিশীল সরঞ্জাম আবিষ্কার এবং নিবন্ধকরণ
  • সেশন ম্যানেজমেন্ট: যথাযথ জীবনচক্র পরিচালনার সাথে রাষ্ট্রীয় সেশনগুলি
  1. পর্যবেক্ষক প্যাটার্ন: ইভেন্ট শ্রোতা ব্যবহার করে ইউআই আপডেটগুলি ডিক্লপড
  2. লেনদেন ব্যবস্থাপনা: রোলব্যাক সমর্থন সহ নিরাপদ ডাটাবেস অপারেশন
  3. সরঞ্জাম রেজিস্ট্রি: সক্ষম/অক্ষমতার সাথে গতিশীল সরঞ্জাম নিবন্ধকরণ
  4. সেটিংস অধ্যবসায়: গিড্রার সেটিংস সিস্টেমে কনফিগারেশন সংরক্ষণ করা হয়েছে
  5. থ্রেড সুরক্ষা: ইউআই অপারেশনগুলির জন্য যথাযথ সুইং ইডিটি হ্যান্ডলিং
src/main/java/ghidrassistmcp/
├── GhidrAssistMCPPlugin.java      # Main plugin class
├── GhidrAssistMCPProvider.java    # UI provider with tabs
├── GhidrAssistMCPServer.java      # MCP server implementation
├── GhidrAssistMCPBackend.java     # Backend tool management
├── McpBackend.java                # Backend interface
├── McpTool.java                   # Tool interface
├── McpEventListener.java          # Event notification interface
└── tools/                         # Tool implementations
    ├── ProgramInfoTool.java
    ├── ListFunctionsTool.java
    ├── DecompileFunctionTool.java
    ├── AutoCreateStructTool.java
    └── ... (29 total tools)
  1. ম্যাকপটুল ইন্টারফেস প্রয়োগ করুন::

    public class MyCustomTool implements McpTool {
        @Override
        public String getName() { return "my_custom_tool"; }
        
        @Override
        public String getDescription() { return "Description"; }
        
        @Override
        public McpSchema.JsonSchema getInputSchema() { /* ... */ }
        
        @Override
        public McpSchema.CallToolResult execute(Map<String, Object> arguments, Program program) {
            // Implementation
        }
    }
  2. ব্যাকএন্ডে নিবন্ধন করুন::

    // In GhidrAssistMCPBackend constructor
    registerTool(new MyCustomTool());
# Clean build
gradle clean

# Build extension
gradle buildExtension

# Build with specific Ghidra path
gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra buildExtension

# Debug build
gradle buildExtension --debug
  • এমসিপি এসডিকে:: io.modelcontextprotocol.sdk:mcp:0.10.0
  • জেটি সার্ভার:: 11.0.20 (এইচটিটিপি/এসএসই পরিবহন)
  • জ্যাকসন:: 2.17.0 (জসন প্রসেসিং)
  • গিদ্রা এপিআই: গিড্রা ইনস্টলেশন দিয়ে বান্ডিল

দ্য লগ ট্যাব রিয়েল-টাইম মনিটরিং সরবরাহ করে:

  • সেশন ইভেন্ট: সার্ভার শুরু/স্টপ, প্রোগ্রাম পরিবর্তন
  • সরঞ্জাম অনুরোধ:: REQ: tool_name {parameters...}
  • সরঞ্জাম প্রতিক্রিয়া:: RES: tool_name {response...}
  • ত্রুটি বার্তা: ব্যর্থ অপারেশন এবং ডায়াগনস্টিকস

গিড্রার কনসোলে বিস্তারিত লগিং:

  • সরঞ্জাম নিবন্ধকরণ এবং সূচনা
  • এমসিপি সার্ভার লাইফসাইকেল ইভেন্টগুলি
  • ডাটাবেস লেনদেন অপারেশন
  • ত্রুটি স্ট্যাক ট্রেস এবং ডিবাগিং তথ্য

সার্ভার শুরু হবে না

  • 8080 পোর্ট উপলব্ধ কিনা তা পরীক্ষা করুন
  • ঘিদ্রা ইনস্টলেশন পথ যাচাই করুন
  • ত্রুটির জন্য কনসোল লগগুলি পরীক্ষা করুন

সরঞ্জাম প্রদর্শিত হচ্ছে না

  • প্লাগইন সক্ষম হয়েছে তা নিশ্চিত করুন
  • সরঞ্জাম স্থিতি জন্য কনফিগারেশন ট্যাব পরীক্ষা করুন
  • লগগুলিতে ব্যাকএন্ড ইনিশিয়ালাইজেশন যাচাই করুন

এমসিপি ক্লায়েন্ট সংযোগ সমস্যা

  • নিশ্চিত করুন সার্ভার চলছে (gidrassistmcp উইন্ডো পরীক্ষা করুন)
  • পরীক্ষার সংযোগ: curl
  • ফায়ারওয়াল সেটিংস পরীক্ষা করুন

সরঞ্জাম কার্যকরকরণ ব্যর্থতা

  • যাচাই প্রোগ্রামটি ঘিদ্রায় লোড করা হয়
  • সরঞ্জাম প্যারামিটারগুলি পরীক্ষা করুন
  • লগ ট্যাবে ত্রুটি বার্তা পর্যালোচনা

গিড্রা স্টার্টআপে যুক্ত করে ডিবাগ লগিং সক্ষম করুন:

-Dlog4j.logger.ghidrassistmcp=DEBUG
  1. সংগ্রহস্থল কাঁটাচামচ
  2. একটি বৈশিষ্ট্য শাখা তৈরি করুন:: git checkout -b feature-name
  3. আপনার পরিবর্তন করুন যথাযথ পরীক্ষা সহ
  4. কোড শৈলী অনুসরণ করুন: বিদ্যমান নিদর্শন এবং সম্মেলন ব্যবহার করুন
  5. একটি টান অনুরোধ জমা দিন বিস্তারিত বিবরণ সহ
  • জাভা 21+ বৈশিষ্ট্য যেখানে উপযুক্ত
  • যথাযথ ব্যতিক্রম হ্যান্ডলিং অর্থপূর্ণ বার্তা সহ
  • লেনদেন সুরক্ষা সমস্ত ডাটাবেস অপারেশন জন্য
  • থ্রেড সুরক্ষা ইউআই অপারেশনগুলির জন্য
  • বিস্তৃত ডকুমেন্টেশন পাবলিক এপিআইয়ের জন্য

এই প্রকল্পটি এমআইটি লাইসেন্সের অধীনে লাইসেন্সযুক্ত – বিশদগুলির জন্য লাইসেন্স ফাইলটি দেখুন।

  • এনএসএ/ঘিদ্রা দল দুর্দান্ত বিপরীত প্রকৌশল প্ল্যাটফর্মের জন্য
  • নৃতাত্ত্বিক মডেল প্রসঙ্গ প্রোটোকল স্পেসিফিকেশন জন্য

** প্রশ্ন বা সমস্যা? **

বাগ প্রতিবেদন, বৈশিষ্ট্য অনুরোধগুলি বা ব্যবহার এবং বিকাশ সম্পর্কে প্রশ্নের জন্য দয়া করে প্রকল্পের সংগ্রহস্থলে একটি সমস্যা খুলুন।

Source link

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।