No description
Find a file
2026-01-27 17:51:29 +04:00
assets chore: added screenshot 2026-01-27 04:16:44 +04:00
crates chore: workspace structure + sample UI 2026-01-27 04:01:11 +04:00
.gitignore chore: updated ignore and readme 2026-01-27 04:12:59 +04:00
Cargo.lock chore: workspace structure + sample UI 2026-01-27 04:01:11 +04:00
Cargo.toml chore: workspace structure + sample UI 2026-01-27 04:01:11 +04:00
proton.asm chore: workspace structure + sample UI 2026-01-27 04:01:11 +04:00
proton.so chore: workspace structure + sample UI 2026-01-27 04:01:11 +04:00
README.md feat: added links for opcodes eBPF vs sBPF 2026-01-27 17:51:29 +04:00

Solens: Solana sBPF Disassembler & Hex Viewer

A lightweight, terminal-native tool designed for reversing Solana smart contracts. Built in Rust with a focus on speed, simplicity, and accessibility for security researchers.

🎯 The Why

My primary intention was to learn the Solana protocol security by reverse-engineering sBPF binaries. While the ecosystem has some powerful tools, I found significant friction in the existing landscape:

  • Binary Ninja: While OtterSec has a great plugin, it is primarily effective for the paid version, which can be a barrier for independent researchers or those just starting.
  • Ghidra: There is an eBPF plugin available (and since sBPF and eBPF opcodes don't vary much, it is quite useful), but the plugin installation process didn't feel straightforward or developer-friendly to me.

Solens is my solution: a standalone, open-source tool built to lower the barrier to entry. I decided to build this tool while diving deeper into Web3 security, and I hope this small program will be useful for other security researchers in the Solana ecosystem.

🚀 Features

  • Native sBPF Support: Built specifically for the Solana-variant of eBPF.
  • Dual-Pane UI: Synchronized Hexadecimal and Assembly views for precise binary analysis.
  • Zero Bloat: No Java dependencies or expensive licenses required.
  • Rust-Powered: High performance and memory safety, essential for binary analysis.

🛠 Project Structure

This project uses a Cargo Workspace to maintain a clean separation of concerns:

  • crates/ui: The Ratatui terminal interface layer.
  • crates/solens: The core sBPF disassembly engine.

📥 Getting Started

Solens UI

Prerequisites

Ensure you have the Rust toolchain installed.

Installation

# Clone the repository
git clone git@github.com:hnariman/solens.git

# Navigate to the root
cd solens

# Build and run the UI
cargo run -p ui

sBPF vs eBPF opcodes:

sBPF Opcodes list eBPF Opcodes list