Skip to content

Hexorg/Ouroboros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ouroboros — A Symbolic-Execution Decompiler

Rust License egui_version

A fast, research-friendly decompiler built in Rust that recovers high-level structure from binaries using symbolic execution, constraint tracking instead of single static assignment IR models (though it can ingest SSA IR). It emphasizes block pre/post conditions, register/memory deltas, dominator/post-dominator analysis, and structured reconstruction (if/else, loops, SESE regions).

Screenshot


Features

  • Symbolic Execution Core
    Tracks path constraints and symbolic values to recover call arguments, globals, and side effects.

  • Constraint-Tracking SSA IR
    VEX-inspired, def-use chains, register/memory deltas, and expression rewriting for clean lifting.

  • CFG + Structural Recovery
    Dominators, post-dominators, and SESE discovery to form if/else, loops, and early-exit patterns.

  • Calling Convention Inference
    Heuristics + dataflow to infer parameter/return passing across common ABIs.

  • Rust-first Performance & Safety
    Zero-cost abstractions where possible; explicit, testable passes.

  • Beautiful UI Thanks and a big shoutout to


Quick Start

Prerequisites

  • Rust (stable). Install via https://rustup.rs/
  • Recommended: llvm-objdump, gdb, or your favorite disassembler for comparison.

Build

git clone https://github.com/Hexorg/Ouroboros.git
cd Ouroboros
cargo build --release

License

Ouroboros is free, open source and permissively licensed! You can choose from

at your option. This means you can select the license you prefer!

About

Decompiler written in Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages