BinjaLattice logo

BinjaLattice

by Invoke-RE

BinjaLattice is a secure communication protocol for Binary Ninja that enables interaction with external Model Context Protocol (MCP) servers and tools. It provides a structured way to acquire information from Binary Ninja and the ability to modify an active Binary Ninja database over HTTP with a REST API.

View on GitHub

Last updated: N/A

What is BinjaLattice?

BinjaLattice is a secure communication protocol that allows Binary Ninja to interact with external Model Context Protocol (MCP) servers. It provides a REST API over HTTP for acquiring information from and modifying Binary Ninja databases.

How to use BinjaLattice?

To use BinjaLattice, install the plugin in your Binary Ninja plugins directory, start the server from within Binary Ninja, and configure your MCP server with the API key provided. You can then use the available MCP tools or the provided Python client library to interact with Binary Ninja.

Key features of BinjaLattice

  • Secure Authentication

  • Encrypted Communication

  • Binary Analysis Context Export

  • Binary Modification

  • Token Management

Use cases of BinjaLattice

  • Automated binary analysis

  • Integration with external tools

  • Collaborative reverse engineering

  • Dynamic analysis

  • Vulnerability research

FAQ from BinjaLattice

How do I install the BinjaLattice plugin?

Copy lattice_server_plugin.py to your Binary Ninja plugins directory.

How do I start the BinjaLattice server?

Open Binary Ninja, load a binary file, and go to Plugins > Start Lattice Protocol Server.

How do I authenticate with the server?

Use the API key displayed in the Binary Ninja log console as the BNJLAT environment variable in your MCP configuration or with the client library.

How do I enable SSL/TLS encryption?

SSL/TLS requires a certificate and key be provided by the user. Enable the --ssl flag in the client or configure it in the client library.

Where can I find the client library?

The client library is located in lib/lattice.py.