Tools

Since radare2 is completely extensible, some people have come up with interesting projects based or around it. Here are, in our opinion, the most significant/advanced/useful ones.

r2frida

Maybe you’ve heard of the amazing frida project, by oleavr, a dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers, written in javascript and super easy to use?

Then we have good news: there is r2frida, a plugin to combine them both! It was presented at the r2con 2017 (you can check the slides here.

To use it, you can either specify a pid, a process name, or a binary:

$ r2 frida://1234
$ r2 frida://Twitter
$ r2 frida://"/bin/ls -al"

This will make radare2 use frida as a backend.

r2 webui

Radare2 comes with a web interface, which can be launched via r2 -c=H /bin/ls, and it looks like this:

webui screenshot

If you’re too lazy to install it, you can give it a try here.

jupyter-radare2

A simple radare2 Jupyter kernel, by guedou, that can be used to make interactive radare2 tutorials, or take advanced notes. You can get it here.

$ jupyter console --kernel radare2
Jupyter console 5.2.0

In [1]: o /bin/ls
9
In [2]: afl

In [3]: afl~main

In [4]: pd 5
;-- entry0:
  0x00005430      31ed           xor ebp, ebp
  0x00005432      4989d1         mov r9, rdx
  0x00005435      5e             pop rsi
  0x00005436      4889e2         mov rdx, rsp
  0x00005439      4883e4f0       and rsp, 0xfffffffffffffff0
In [5]:
Do you really want to exit ([y]/n)? y
Shutting down kernel

It looks like this:

jupyter notebook for radare2

acr

acr stands for AutoConf Replacement. It’s a GPLv2 replacement for autoconf, based on shell scripts instead of M4 macros, making it simpler, faster, and easier to use. It comes with extensive documentation and various examples.

We’re using it to generate radare2’s Makefiles.

valabind

valabind is a tool to parse vala or vapi files to transform them into swig interface files, C++, NodeJS-ffi or GIR.

It’s used to generate the (now deprecated) bindings for radare2.

radare2-extras

radare2-extras contains additional plugins for radare2. They aren’t included in the core for various reasons: dependency on external libraries, marginal/specific usecase, duplicate features, …

The recommended way to build/install/toy with/… those plugins is to use r2pm.

radare2-bindings

radare2-bindings are the bindings for radare2, generated by valabind. They are being deprecated in favour of r2pipe.