{"id":13455913,"url":"https://github.com/otter-sec/bn-ebpf-solana","last_synced_at":"2026-03-04T18:13:30.290Z","repository":{"id":98295398,"uuid":"507802890","full_name":"otter-sec/bn-ebpf-solana","owner":"otter-sec","description":"Binary Ninja plugin for Solana eBPF","archived":false,"fork":false,"pushed_at":"2026-02-13T18:50:29.000Z","size":677,"stargazers_count":240,"open_issues_count":2,"forks_count":38,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-02-14T01:50:58.295Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/otter-sec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-27T07:17:16.000Z","updated_at":"2026-02-13T18:50:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"2fe12081-2964-4d2d-805e-128e13088788","html_url":"https://github.com/otter-sec/bn-ebpf-solana","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/otter-sec/bn-ebpf-solana","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otter-sec%2Fbn-ebpf-solana","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otter-sec%2Fbn-ebpf-solana/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otter-sec%2Fbn-ebpf-solana/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otter-sec%2Fbn-ebpf-solana/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/otter-sec","download_url":"https://codeload.github.com/otter-sec/bn-ebpf-solana/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otter-sec%2Fbn-ebpf-solana/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30088475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T15:40:14.053Z","status":"ssl_error","status_checked_at":"2026-03-04T15:40:13.655Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T08:01:13.394Z","updated_at":"2026-03-04T18:13:30.282Z","avatar_url":"https://github.com/otter-sec.png","language":"Python","funding_links":[],"categories":["Security","Python"],"sub_categories":["Indexers"],"readme":"# bn-ebpf-solana\n\nA pure-python Binary Ninja plugin for Solana EBPF.\n\n## Regular install from plugin manager\n\nBe sure to install both `bn-ebpf-solana` and `binary_ninja_mcp` from the plugin manager\n\nTested on Binary Ninja `5.0.7486-Stable`\n\n## Manual installation (advanced, latest features)\n\nThis is only needed if you wish to tinker with the plugin to modify it.\n\nClone this [repo](https://github.com/otter-sec/bn-ebpf-solana), aswell as the [mcp plugin repo](https://github.com/fosdickio/binary_ninja_mcp), in your Binja `plugins` folder, located in the [user folder](https://docs.binary.ninja/guide/index.html#user-folder).\n\nNow install the requirements :\n- either by running `Install python3 module` in Binja's `command palette` (Ctrl + P) and install the following modules\n\n```\nlief\nanthropic\nfastmcp\ntenacity\nrust_demangler  \npygments  \nanchorpy  \nsolana  \nsolders\nbase58\n```\n\n- or by going to the [user folder](https://docs.binary.ninja/guide/index.html#user-folder) and installing the requirements.txt\n\nAlso for the MCP integration to work please install `mcp` globally (outside the binja venv) like so:\n\n```\npip install mcp\n```\n\n\nSee our [introductory blog post](https://osec.io/blog/2022-08-27-reverse-engineering-solana).\n\n**Instruction lifting!**\n![](https://github.com/otter-sec/bn-ebpf-solana/blob/master/assets/lift.png?raw=true)\n\n**Solana SDK Structures!**\n![](https://github.com/otter-sec/bn-ebpf-solana/blob/master/assets/struct.png?raw=true)\n\nCopy this directory into your Binary Ninja plugins folder and restart.\n\n## Features\n\n- **Instruction Lifting**: All EBPF instructions are lifted to LLIL\n- **Accurate Memory Maps**: We implement Solana-specific memory maps (0x{1/2/3/4}00000000 addresses for data/stack/heap/input)\n- **Solana ELF Relocations**: Solana-specific ELF relocations\n- **Syscall Function Signatures**: Full signatures for all of the Solana syscalls\n- **(partial) Solana SDK Types**: Type definitions for all Solana SDK objects. (fully complete for C, in-progress for Rust)\n\n### MCP integration\n\nIn order to use the MCP integration please set up your anthropic api key in the settings under\n\n```\nMCP settings \u003e Anthropic API Key\n```\n\nYou will now be able to use the side menu on the right, symbolized by an R. \nClick on any function to start prompting the model to call MCP actions, and to ultimately display a Rust version in the side panel\n\n_TODO:_\n\n- **Solana SDK Signature Matching**: Automatically match common Solana SDK functions.\n\n## Debugging\n\n```\n[ScriptingProvider] ModuleNotFoundError: No module named 'lief'\n```\n\nIs `lief` installed?\n\nRun the following in the Binja python console\n\n```python\nimport lief\nlief.__version__\n```\n\nIf you get an error, refer to the **Installation** section\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotter-sec%2Fbn-ebpf-solana","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fotter-sec%2Fbn-ebpf-solana","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotter-sec%2Fbn-ebpf-solana/lists"}