Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/otter-sec/bn-ebpf-solana
Binary Ninja plugin for Solana eBPF
https://github.com/otter-sec/bn-ebpf-solana
Last synced: about 1 month ago
JSON representation
Binary Ninja plugin for Solana eBPF
- Host: GitHub
- URL: https://github.com/otter-sec/bn-ebpf-solana
- Owner: otter-sec
- License: mit
- Created: 2022-06-27T07:17:16.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-08-27T23:15:33.000Z (over 2 years ago)
- Last Synced: 2024-08-01T08:18:21.851Z (4 months ago)
- Language: Python
- Size: 591 KB
- Stars: 125
- Watchers: 10
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - otter-sec/bn-ebpf-solana - Binary Ninja plugin for Solana eBPF (Python)
- awesome-solana - Binary Ninja Plugin for Solana Byte Format - sec/bn-ebpf-solana.svg?style=social) (Security / Indexers)
README
# bn-ebpf-solana
A pure-python Binary Ninja plugin for Solana EBPF.
See our [introductory blog post](https://osec.io/blog/tutorials/2022-08-27-reverse-engineering-solana/).
**Instruction lifting!**
![](/assets/lift.png)**Solana SDK Structures!**
![](/assets/struct.png)## 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.