All Projects → radareorg → Radeco

radareorg / Radeco

Licence: bsd-3-clause
radare2-based decompiler and symbol executor

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Radeco

R2dec Js
radare2 plugin - converts asm to pseudo-C code.
Stars: ✭ 345 (+10.22%)
Mutual labels:  decompiler, radare2
ghidra-r2web
Ghidra plugin to start an r2 webserver to let r2 interact with it
Stars: ✭ 38 (-87.86%)
Mutual labels:  decompiler, radare2
R2m2
radare2 + miasm2 = ♥
Stars: ✭ 86 (-72.52%)
Mutual labels:  radare2
Elisp Bytecode
Let's document Emacs Lisp Bytecode (Lisp Assembly Program) instructions
Stars: ✭ 151 (-51.76%)
Mutual labels:  decompiler
Iaito
This project has been moved to:
Stars: ✭ 1,516 (+384.35%)
Mutual labels:  radare2
Radare2 Pm
Package Manager for Radare2
Stars: ✭ 100 (-68.05%)
Mutual labels:  radare2
Despector
Java / Kotlin Decompiler and AST Library
Stars: ✭ 126 (-59.74%)
Mutual labels:  decompiler
Arcore Patch
Attempt to get ARCore Preview 2 running on unsupported devices
Stars: ✭ 74 (-76.36%)
Mutual labels:  radare2
Abyss
abyss - IDAPython Plugin for Postprocessing of Hexrays Decompiler Output
Stars: ✭ 161 (-48.56%)
Mutual labels:  decompiler
Jupyter Radare2
Just a simple radare2 Jupyter kernel
Stars: ✭ 109 (-65.18%)
Mutual labels:  radare2
Mips to c
A MIPS decompiler.
Stars: ✭ 140 (-55.27%)
Mutual labels:  decompiler
Gda Android Reversing Tool
GDA is a new fast and powerful decompiler in C++(working without Java VM) for the APK, DEX, ODEX, OAT, JAR, AAR, and CLASS file. which supports malicious behavior detection, privacy leaking detection, vulnerability detection, path solving, packer identification, variable tracking, deobfuscation, python&java scripts, device memory extraction, dat…
Stars: ✭ 2,332 (+645.05%)
Mutual labels:  decompiler
Radare2 Bindings
Bindings of the r2 api for Valabind and friends
Stars: ✭ 100 (-68.05%)
Mutual labels:  radare2
R2con2019
r2con2019 - slides and materials
Stars: ✭ 128 (-59.11%)
Mutual labels:  radare2
Jremapper
Remapping tool for compiled java programs.
Stars: ✭ 97 (-69.01%)
Mutual labels:  decompiler
Jni helper
Find JNI function signatures in APK and apply to reverse tools.
Stars: ✭ 154 (-50.8%)
Mutual labels:  radare2
Mrspicky
MrsPicky - An IDAPython decompiler script that helps auditing calls to the memcpy() and memmove() functions.
Stars: ✭ 86 (-72.52%)
Mutual labels:  decompiler
Reversing List
Reversing list
Stars: ✭ 106 (-66.13%)
Mutual labels:  radare2
Unreal Library
A decompiler library for Unreal packages such as .upk and .u files, supporting Unreal Engine 1, 2, and 3.
Stars: ✭ 123 (-60.7%)
Mutual labels:  decompiler
R2frida Wiki
This repo aims at providing practical examples on how to use r2frida
Stars: ✭ 168 (-46.33%)
Mutual labels:  radare2

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].