• Stars
    star
    363
  • Rank 113,892 (Top 3 %)
  • Language
    Rust
  • Created about 9 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

radare2-based decompiler and symbol executor

Radeco

Appveyor Status Build Status Coverage Status

A radare2 based binary analysis framework consisting from the Radeco client, in ./radeco/ directory, ./radeco-lib/ - library where whole high-level logic is located, ./arch-rs/ to abstract the architectures intricacies, ./esil-rs/ to parse the radare2 ESIL, and ./rune/ to perform symbolic execution on top of ESIL. Radeco uses its own intermediate representation, which also has a text representation - RadecoIL.

Is this ready yet?

Nope. There is still a ton of work to do before this can be considered ready. That said, parts of the library are already stable enough to write your own analysis passes and use in your projects.

Usage

Build like a regular rust project, using cargo:

cargo build

To include in your rust project, add to Cargo.toml:

[dependencies.radeco-lib]
git = "https://github.com/radare/radeco"

See examples for usage.

Trace Log

To debug, you may want to enable trace output from various parts of radeco. Build with trace_log feature to enable this:

cargo build --features 'trace_log'

Profiling

Requires gperftools . Check the cpuprofiler repository for more details.

To enable profiling, build with profile feature:

cargo build --features 'profiler'

Wrap the code you want to profile with:

use cpuprofiler::PROFILER;

PROFILER.lock().unwrap().start("./my-prof.profile").unwrap();
// Code you want to sample goes here!
PROFILER.lock().unwrap().stop().unwrap();

Radeco-lib project layout

src/
├── analysis/               Analyzers on SSA form Radeco-IR
├── backend/                Analyzers on C-pseudo code
│   ├── ctrl_flow_struct/   Implementation of `No More Gotos`
│   └── lang_c/             Coverter of C-pseudo code from RadecoFunction
├── frontend/               Loaders of RadecoFunction, RadecoProject
├── middle/                 Constructer, writer, parser of Radeco-IR
│   ├── regfile/            Profile of registers
│   └── ssa/                SSA form of Radeco-IR
└── utils/                  Logger, etc

License

Licensed under The BSD 3-Clause License. Please check COPYING file for complete license.

More Repositories

1

radare2

UNIX-like reverse engineering framework and command-line toolset
C
19,483
star
2

iaito

Official QT frontend of radare2
C++
886
star
3

radare2-book

Radare2 official book
C
742
star
4

awesome-radare2

A curated list of awesome projects, articles and the other materials powered by Radare2
682
star
5

radare2-r2pipe

Access radare2 via pipe from any programming language!
JavaScript
352
star
6

radare2-extras

Source graveyard and random candy for radare2
C
235
star
7

sdb

Simple and fast string based key-value database with support for arrays and json
C
211
star
8

r2con

Radare Congress Stuff
201
star
9

esilsolve

A python symbolic execution framework using radare2's ESIL (Evaluable String Intermediate Language)
Python
153
star
10

r2con2019

r2con2019 - slides and materials
Python
137
star
11

radare2-bindings

Bindings of the r2 api for Valabind and friends
Python
131
star
12

radare2-pm

Package Manager for Radare2
Shell
129
star
13

r2retdec

RetDec plugin for Radare2
C++
123
star
14

r2con2017

r2con 2017 September 6-9
Python
98
star
15

r2con2018

HTML
94
star
16

radare2-webui

webui repository for radare2
JavaScript
94
star
17

r2wars

Corewars but within r2
C#
46
star
18

r2pipe.rs

Rust crate for r2pipe
Rust
44
star
19

r2ai

local language model for radare2
Python
43
star
20

ghidra-r2web

Ghidra plugin to start an r2 webserver to let r2 interact with it
Java
42
star
21

libdemangle

A simple library focusing on demangling symbols for different programing languages
C
39
star
22

r2con2020

Python
36
star
23

r2pm

Radare2 cross platform package manager
Go
34
star
24

r2jp

Japanese Community of radare2
34
star
25

radare2-r2papi

High Level API on top of the R2Pipe interface
TypeScript
32
star
26

radare

advanced unix-like hexadecimal editor and debugger
C
32
star
27

r2pipe-go

Go API to interact with radare2
Go
31
star
28

acr

autoconf replacement
Shell
30
star
29

r2con2021

27
star
30

ghidra-native

C++
26
star
31

r2env

Install multiple versions of r2 and its plugins via Pip on any system!
Python
23
star
32

radare2-rust

Playground for Rust and Radare2
Rust
14
star
33

radare2-rlang

Writing Radare2 plugins in various languages
C
14
star
34

radare2-testbins

Rebol
14
star
35

radare.org

http://www.radare.org/
CSS
12
star
36

r2hexagon

Hexagon disassembler code generator from the official instruction manual.
C
12
star
37

esil-rs

Radare2's ESIL in Rust
Rust
11
star
38

r2con2016

r2con2016 repository
C
10
star
39

r2diaphora

Binary Diffing tool ported to radare2
Python
9
star
40

radare2-gsoc-windows

Various Brainstorming/scripts/ideas/etc. for the GSOC-Windows Task
C
9
star
41

r2yara

yara and radare2, better together
C
9
star
42

ragui

Vala
8
star
43

radare2-release

Releasing is hard
Shell
7
star
44

blog

The radare2 blog, available on radare.today
Shell
6
star
45

r2pipe-codeshare

A place to share your radare2 scripts
Python
6
star
46

r2app

Electron Desktop App for Radare2
JavaScript
5
star
47

radare2-win-installer

Windows installer scripts for radare2
Inno Setup
5
star
48

r2r-go

Go
5
star
49

radareorg

New amazing website for radare.org
Python
4
star
50

radare2-fuzz

Python
4
star
51

ideas

4
star
52

node-r2r

radare2 regressions testsuite in nodejs
JavaScript
3
star
53

iaito-translations

Makefile
3
star
54

.github

Radare Organization Templates
3
star
55

r2pm-db

Radare2 package manager database
3
star
56

r2shell

C
2
star
57

infrastructure

Terraform, Nomad, Consul and Vault configuration of radare infrastructure
Dockerfile
2
star
58

radare2-skel

Sample radare2 project templates
C
2
star
59

radare2-snap

Radare2 snap and docker repository
Dockerfile
2
star
60

radare2-fuzztargets

Makefile
1
star
61

r2r-v

R2 regressions testsuite written in V
V
1
star
62

radeco-regressions

Regresion tests for radeco
Rust
1
star
63

radare2-sigs

Zignature masm32 repository
Python
1
star
64

r2sarif

JavaScript
1
star