binary_ninja_mcp  by fosdickio

AI-powered reverse engineering integration for Binary Ninja

Created 11 months ago
263 stars

Top 96.9% on SourcePulse

GitHubView on GitHub
Project Summary

This project provides a Binary Ninja plugin that integrates with Large Language Model (LLM) clients via the Messaging and Control Protocol (MCP). It aims to enhance reverse engineering workflows by enabling AI-assisted analysis, allowing users to query and manipulate Binary Ninja's data and decompiled code through familiar LLM interfaces. The target audience includes reverse engineers, security researchers, and developers seeking to leverage AI for code comprehension and analysis.

How It Works

The core architecture consists of a Binary Ninja plugin acting as an MCP server, exposing Binary Ninja's extensive API through HTTP endpoints. A separate bridge component facilitates communication between this server and various MCP clients. This design allows LLMs to seamlessly interact with Binary Ninja, enabling features like automated code commenting, variable renaming, function decompilation, and even patching, directly from the LLM interface. The approach offers a novel way to augment traditional reverse engineering with AI capabilities in real-time.

Quick Start & Requirements

  • Prerequisites: Binary Ninja, Python 3.12+.
  • Installation:
    1. Install a supported MCP client (e.g., Cline, Roo Code, Claude Desktop, Cursor, Windsurf, Claude Code, LM Studio Extension). Auto-setup is recommended and supported for these clients.
    2. Install the Binary Ninja MCP plugin via Binary Ninja's Plugin Manager or by manually copying the repository into the plugins folder.
    3. Auto-setup for MCP clients can be managed via scripts/mcp_client_installer.py.
  • Demo: A demo video showcasing CTF challenge solving is available on YouTube.

Highlighted Details

  • Enables seamless, real-time integration between Binary Ninja and multiple LLM/MCP clients.
  • Facilitates AI-assisted reverse engineering workflows, including code analysis, commenting, and renaming.
  • Supports a wide range of MCP clients, offering flexibility in toolchain selection.
  • Provides access to numerous Binary Ninja capabilities via MCP functions, such as decompilation, type definition, cross-reference retrieval, and byte patching.

Maintenance & Community

The project utilizes Ruff for linting and formatting, with automated checks integrated via GitHub Actions on push and pull requests to the main branch, indicating a focus on code quality. No specific community channels (e.g., Discord, Slack) or notable contributors are mentioned in the provided text.

Licensing & Compatibility

The provided README content does not specify a software license. This omission requires further investigation for users considering commercial use or integration with proprietary systems.

Limitations & Caveats

While the project emphasizes auto-setup for supported MCP clients, manual configuration for other clients may require detailed understanding of the MCP protocol and Binary Ninja's plugin structure, as suggested by the example configuration snippet. No explicit limitations regarding alpha/beta status or known bugs are mentioned.

Health Check
Last Commit

2 months ago

Responsiveness

Inactive

Pull Requests (30d)
2
Issues (30d)
2
Star History
46 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.