A pure-python Binary Ninja plugin for Solana EBPF.
See our introductory blog post.
Requirements:
pip install lief
Copy this directory into your Binary Ninja plugins folder and restart.
- 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.