1 điểm bởi GN⁺ 2026-02-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • Ghidra MCP Server là máy chủ Model Context Protocol (MCP) kết nối các tính năng reverse engineering của Ghidra với AI và các framework tự động hóa
  • Cung cấp khả năng phân tích nhị phân toàn diện như phân tích hàm, khám phá cấu trúc dữ liệu, trích xuất chuỗi... thông qua 110 công cụ MCP và 132 endpoint
  • Hỗ trợ xử lý theo lô, giao dịch nguyên tử, phân tích thời gian thực, đồng thời có thể vận hành bằng triển khai Docker và chế độ headless
  • Tính năng chuyển tài liệu cross-binary tự động đối sánh tài liệu hàm giữa các phiên bản nhị phân khác nhau
  • Một nền tảng cho phép triển khai workflow reverse engineering dựa trên AI với độ ổn định ở mức production

Tổng quan

  • Ghidra MCP Server là máy chủ MCP cấp production kết nối engine phân tích của Ghidra với các công cụ AI và hệ thống tự động hóa
    • Triển khai đầy đủ Model Context Protocol để hỗ trợ tương tác với các mô hình AI
    • Phơi bày các chức năng của Ghidra qua HTTP REST và giao thức MCP (stdio/SSE)

Tính năng chính

  • Tích hợp MCP cốt lõi
    • Tương thích hoàn toàn với MCP, cung cấp 110 công cụ MCP, hỗ trợ thao tác theo lô và giao dịch nguyên tử
    • Tích hợp thời gian thực với engine phân tích của Ghidra
  • Phân tích nhị phân
    • Decompile hàm, đồ thị lời gọi, tham chiếu chéo, tự động tạo cấu trúc dữ liệu
    • Bao gồm trích xuất chuỗi, phân tích bảng ký hiệu, ánh xạ bộ nhớ và tính năng chuyển tài liệu cross-binary
  • Phát triển và tự động hóa
    • Pipeline tự động hóa build-test-deploy-verify
    • Tạo, chạy và quản lý script Ghidra, so sánh nhiều chương trình, đổi tên hàng loạt và chú thích

Cài đặt và chạy

  • Thành phần bắt buộc: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • Quy trình cài đặt
    • Clone repository rồi cài các dependency Python
    • Sao chép 14 thư viện Ghidra rồi build bằng Maven
    • Triển khai plugin vào thư mục extension của Ghidra
  • Cách chạy
    • Chọn truyền tải Stdio (mặc định, dành cho công cụ AI) hoặc SSE (dành cho client Web/HTTP)
    • Trong Ghidra, chạy Tools > GhidraMCP > Start MCP Server

Hiệu năng và độ ổn định

  • Triển khai đầy đủ 110 công cụ MCP, với thời gian phản hồi dưới 1 giây cho phần lớn thao tác
  • Cấu trúc thao tác theo lô giúp giảm 93% số lần gọi API
  • Mọi thao tác đều được xử lý bằng giao dịch nguyên tử để đảm bảo độ tin cậy
  • Cung cấp script triển khai tự động có nhận biết phiên bản

Cấu trúc API

  • Thao tác cốt lõi: kiểm tra kết nối, truy vấn metadata, thông tin phiên bản, khám phá entry point
  • Phân tích hàm: danh sách hàm, tìm theo tên, decompile, đồ thị quan hệ lời gọi, đánh giá mức độ hoàn thiện tài liệu
  • Bộ nhớ và dữ liệu: danh sách segment, disassemble, tham chiếu chéo, kiểm tra nội dung bộ nhớ
  • Tài liệu hóa cross-binary: tạo hash hàm, xuất/áp dụng tài liệu, đối sánh dựa trên hash
  • Quản lý kiểu dữ liệu: tạo struct/enum, chỉnh sửa field, hợp nhất các kiểu trùng lặp
  • Quản lý symbol và label: danh sách import/export, phân tích chuỗi, quản lý namespace và biến toàn cục
  • Đổi tên và chú thích: đổi tên hàm/dữ liệu/biến, thiết lập chú thích hàng loạt
  • Hệ thống kiểu: chỉ định prototype hàm, thiết lập kiểu biến, truy vấn calling convention
  • Quản lý script Ghidra: danh sách script, chạy, lưu, sửa, xóa
  • Hỗ trợ nhiều chương trình: chuyển đổi giữa các chương trình đang mở, danh sách file dự án, so sánh tài liệu
  • Công cụ phân tích: tìm hàm chưa được xác định, tìm kiếm theo chuỗi, tìm mẫu byte

Kiến trúc

  • Cấu trúc AI/Automation tool ↔ MCP Bridge ↔ Ghidra Plugin
    • bridge_mcp_ghidra.py: máy chủ Python chuyển đổi giao thức MCP thành các lời gọi HTTP
    • GhidraMCP.jar: plugin Java phơi bày chức năng của Ghidra qua HTTP
    • ghidra_scripts/: bao gồm hơn 70 script tự động hóa

Phát triển và build

  • Cung cấp build dựa trên Maven và script triển khai PowerShell
  • Cấu trúc dự án gồm máy chủ Python, plugin Java, thư viện Ghidra, tài liệu, ví dụ và script build
  • Cần sao chép 14 thư viện bắt buộc (khoảng 37MB) từ đường dẫn cài đặt Ghidra
  • Bao gồm các tính năng triển khai tự động, thao tác theo lô, giao dịch nguyên tử và logging chi tiết

Tài liệu và workflow AI

  • Thư mục docs/ chứa tài liệu đầy đủ, cấu trúc dự án, quy ước đặt tên và Hungarian notation
  • Prompt workflow AI: cung cấp prompt cho tài liệu hóa hàm, đối sánh giữa các phiên bản và hướng dẫn bắt đầu nhanh
  • Lịch sử phát hành: CHANGELOG.md và docs/releases ghi chi tiết theo từng phiên bản

Giấy phép và trạng thái

  • Áp dụng Apache License 2.0
  • Phiên bản 2.0.0, triển khai đầy đủ 110 công cụ MCP, bao gồm hơn 70 script Ghidra
  • Sẵn sàng triển khai trong môi trường production, phù hợp cho reverse engineering dựa trên AI

Dự án liên quan

  • re-universe: nền tảng phân tích độ tương đồng nhị phân quy mô lớn dựa trên PostgreSQL
  • cheat-engine-server-python: máy chủ MCP cho phân tích bộ nhớ động và debug

Lời cảm ơn

  • Gửi lời cảm ơn tới đội ngũ Ghidra, nhóm phát triển Model Context Protocol và các cộng tác viên cộng đồng

1 bình luận

 
GN⁺ 2026-02-06
Ý kiến trên Hacker News
  • Tôi đã tạo dự án này vì quá đau khổ khi phải reverse engineering nhiều phiên bản của cùng một phần mềm
    Điểm cốt lõi là một hệ thống băm hàm đã được chuẩn hóa, tạo hash dựa trên cấu trúc logic của hàm (lệnh, toán hạng, luồng điều khiển)
    Nhờ vậy, ngay cả khi binary được build lại hoặc rebase, cùng một hàm vẫn có cùng hash, và mọi chú thích, kiểu dữ liệu, tên gọi đều được chuyển sang tự động
    Đây là một cầu nối MCP cho Ghidra, bao gồm 110 công cụ và có thể tích hợp với Claude, Claude Code hoặc các MCP client khác
    Tôi đã kiểm chứng với nhiều phiên bản patch của Diablo II và có thể tự động chuyển hơn 1.300 chú thích hàm
    Tích hợp CI cũng khả thi nhờ headless mode dựa trên Docker
    Trong v2.0.0, tôi đã thêm bind chỉ cho localhost, thiết lập timeout, xóa label, cấu hình .env, v.v.
    Rất hoan nghênh thảo luận về cách tiếp cận băm hoặc thiết kế MCP

    • Tôi tò mò nó khác gì so với FunctionID mặc định của Ghidra hoặc plugin BinDiff
    • Tôi cũng muốn biết nó so với ReVa như thế nào
      Có vẻ hướng dẫn cài đặt chưa đầy đủ. Tôi cài vào Ghidra rồi khởi động lại nhưng không thấy GhidraMCP trong menu Tools
    • Tôi đã thử dùng trực tiếp nhưng Ghidra không nhận ra plugin
      Không rõ GH Discussions có phải là kênh trao đổi phù hợp không
    • Tôi muốn biết nó khác gì với các Ghidra MCP server khác như pyghidra-mcp, ReVa, GhidrAssistMCP, v.v.
    • Tôi muốn biết có hỗ trợ decompile binary Android hay không
  • Tôi đã dùng Ghidra MCP server của LaurieWired, và việc phân tích binary cũng như tạo keygen rất vui và đơn giản
    Tôi nhất định sẽ thử MCP server này

    • Có một phần mềm tôi từng viết không cài được nữa vì nó cố xác thực với một server đã không còn tồn tại, tôi đã thử tự làm Ghidra MCP nhưng thất bại
      Thấy dự án này xuất hiện đúng lúc như vậy thật kỳ lạ
    • Branch này đã đi trước 110 commit so với main của LaurieWired/GhidraMCP
  • Tôi thấy một đồng nghiệp dùng Ghidra với Claude để hack game River Ride nên cũng thử làm theo
    Tôi đã port một game cũ cho PowerPC sang Apple Silicon, và dù đã thử nhiều MCP, Claude Code vẫn thường bịa mã
    Cuối cùng tôi có kết quả tốt nhất với headless mode của Cursor + GPT 5.2 Codex

    • Tôi cũng đang thử nghiệm reverse engineering, và GPT-5.2 Codex tốt hơn Claude rất nhiều
      Ví dụ, nó đã phục dựng hoàn chỉnh một file C64-SID dài 1.300 dòng chỉ trong 30 phút
      Hiện tôi đang xây dựng một hệ thống đa tác tử để đảo ngược toàn bộ game C64
      Xem mã ví dụ
  • Reverse engineering bằng AI đang bị đánh giá thấp
    Tôi đã trích xuất thành công khóa mã hóa từ một ứng dụng Android, trong đó khóa bị giấu trong shader và thực sự phải chạy shader mới lấy được

    • Tôi đã đưa cho Claude một game Unity cũ cùng một người bạn, và nó tạo ra hẳn một bản port TypeScript hoàn chỉnh
      Giờ chúng tôi đang thêm tính năng multiplayer trên trình duyệt
    • Chuyện trích xuất khóa từ shader nghe rất thú vị. Tôi muốn nghe thêm về cách cụ thể đã làm
    • Tôi cũng đã nối MCP với nhiều công cụ để thử phục dựng source code và phát hiện lỗ hổng từ binary, và kết quả gần như trùng với source thật
  • Tôi đã dùng bản 15 công cụ của LaurieWired suốt vài tháng, và có cảm giác cấu trúc bên trong của app trở nên hoàn toàn trong suốt
    Tôi có thể lần bug, làm plugin, thậm chí sửa app
    Với mã Objective-C, tôi còn dùng thêm Hopper Disassembler
    Bài báo liên quan: Full recompilation with LLMs and Ghidra

    • Với tư cách là nhân viên GitHub, việc xem app reverse engineering như OSS không tạo cho tôi ấn tượng tốt
  • Reverse engineering bằng LLM thật sự đang bị đánh giá thấp
    Tôi đang phục dựng một game 30 năm tuổi, và khi đưa kết quả decompile của Ghidra cùng thông tin symbol cho mô hình theo kiểu RAG, kết quả thật đáng kinh ngạc
    Ngay cả các model giá rẻ như Gemini 3 Flash cũng đủ dùng

    • Nhưng Gemini thường tạo ra mã giả không hoàn chỉnh
      Nó bỏ sót một phần của hàm hoặc chỉ để lại chú thích bên trong khối switch
      Trong khi đó Claude Opus hay Qwen3-30B-A3B cho ra mã hoàn chỉnh hơn nhiều
      Cửa sổ ngữ cảnh lớn của Gemini là một lợi thế, nhưng trên thực tế vẫn bị hạn chế khá nhiều vì sự dài dòng của PCode
  • Tôi từng nghĩ nối quá nhiều công cụ vào MCP sẽ làm giảm hiệu năng, và cái này không có vẻ là một thiết kế tốt

    • Dạo này người ta phần nào giải quyết vấn đề công cụ MCP bằng lazy loading
      Dù vậy, các công cụ thiên về chuyển đổi API vẫn kém tương thích với LLM
    • Các công cụ dạng kỹ năng dựa trên vibecoded có lẽ sẽ hiệu quả hơn nhiều
  • Tôi không phải reverse engineer, nhưng đã dùng Claude Code và Ghidra MCP để cải thiện một trình giải mã ransomware
    Khi khôi phục được hàng terabyte dữ liệu, tôi thật sự có cảm giác như có siêu năng lực

    • Tôi còn bị đùa là: “Với siêu năng lực đó thì lẽ ra anh cũng có thể làm luôn bộ mã hóa đáng tin cậy hơn chứ?”
  • Tôi nghĩ AI có thể thể hiện năng lực siêu phàm trong phân tích binary
    Hiện tại đây vẫn là công việc năng suất thấp và nhàm chán, nhưng nhờ AI, nó có thể được dùng cho kiểm toán bảo mật hay phòng thủ trước các cuộc tấn công chuỗi cung ứng

    • Đúng vậy, hơn nữa AI còn có thể tự phân tích chính nó
      “skill-snitch” của MOOLLM giám sát hoạt động của các kỹ năng khác, còn “cursor-mirror” thì nhìn xuyên hoàn toàn vào trạng thái nội bộ của Cursor
      Những kỹ năng này có thể kết hợp và gọi đệ quy lẫn nhau, hoạt động theo kiểu “speed of light” nhanh hơn MCP rất nhiều
      Tài liệu liên quan: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
  • Tôi tò mò vì sao lại không làm theo kiểu CLI-based. Có vẻ dạo này LLM và agent xử lý CLI tốt hơn

    • Tôi nghĩ chỉ đúng nếu CLI đó có trong dữ liệu huấn luyện. Nếu là công cụ mới thì đằng nào cũng phải nhét toàn bộ tài liệu vào ngữ cảnh
    • Dự án này được bắt đầu trước khi MCP chiếm quá nhiều ngữ cảnh (LaurieWired/GhidraMCP)
    • Gần đây các công cụ như Claude Code đã hỗ trợ nạp dựa trên tìm kiếm công cụ, nên gánh nặng ngữ cảnh của MCP đã giảm đi khá nhiều
    • Tôi cũng nghĩ tương tự. Nếu mô tả của 110 công cụ luôn nằm trong ngữ cảnh thì chỉ làm tăng thêm nhiễu thôi