/bn-ebpf-solana

Binary Ninja plugin for Solana eBPF

Primary LanguagePythonMIT LicenseMIT

bn-ebpf-solana

A pure-python Binary Ninja plugin for Solana EBPF.

See our introductory blog post.

Instruction lifting!

Solana SDK Structures!

Installation

Requirements:

pip install lief

Copy this directory into your Binary Ninja plugins folder and restart.

Features

  • Instruction Lifting: All EBPF instructions are lifted to LLIL
  • Accurate Memory Maps: We implement Solana-specific memory maps (0x{1/2/3/4}00000000 addresses for data/stack/heap/input)
  • Solana ELF Relocations: Solana-specific ELF relocations
  • Syscall Function Signatures: Full signatures for all of the Solana syscalls
  • (partial) Solana SDK Types: Type definitions for all Solana SDK objects. (fully complete for C, in-progress for Rust)

TODO:

  • Solana SDK Signature Matching: Automatically match common Solana SDK functions.