# Radare2

Radare2 (també conegut com r2) és un marc complet per a l'enginyeria inversa i l'anàlisi de binaris; compost per un conjunt de petites utilitats que es poden utilitzar juntes o independentment de la línia d'ordres. Construït al voltant d'un desmuntador de programari informàtic que genera codi font en llenguatge ensamblador a partir de codi executable per màquina, admet una varietat de formats executables per a diferents arquitectures de processadors i sistemes operatius.

## Història

Radare2 va ser creat el febrer de 2006 per l'analista i investigador en seguretat de tecnologia mòbil Sergi Àlvarez, amb l'objectiu de proporcionar una interfície de línia d'ordres senzilla i gratuïta per a un editor hexadecimal que suportés desplaçaments de 64 bits per fer cerques i recuperar dades dels discs durs, amb finalitats forenses. Des d'aleshores, el projecte ha crescut amb l'objectiu evolucionar a proporcionar un marc complet per analitzar fitxers binaris alhora que s'adhereix a diversos principis de la filosofia Unix.
L'any 2009 es va prendre la decisió de reescriure'l completament, per evitar les limitacions del disseny inicial. Des de llavors, el projecte va continuar creixent, i va atreure diversos desenvolupadors residents.
L'any 2016 va tenir lloc a Barcelona la primera trobada r2con que va reunir més de 100 participants, amb diverses xerrades sobre diverses característiques i millores del framework.
Radare2 ha estat el focus de múltiples presentacions en diverses conferències de seguretat d'alt perfil, com el recon, hack.lu, i 33c3.

## Característiques i ús

Radare2 té una corba d'aprenentatge pronunciada, ja que els seus principals binaris executables s'utilitzen per línia d'ordres i no té una GUI per si mateix. Originalment construït al voltant d'un editor hexadecimal, ara té multitud d'eines i funcions, i també enllaços per a diversos llenguatges. Mentrestant té una WebUI i el projecte oficial d'interfície gràfica d'usuari per a Radare2 es diu Iaito.

### Anàlisi estàtica

Radare2 és capaç de muntar i desmuntar molts programes de programari, principalment executables, però també pot realitzar diferències binàries amb gràfics, extreure informació com símbols de reubicació i altres tipus de dades. Internament, utilitza una base de dades NoSQL anomenada sdb per fer un seguiment de la informació d'anàlisi que Radare2 pot inferir o afegir manualment per l'usuari. Com que és capaç de tractar amb binaris mal formats, també ha estat utilitzat pels investigadors de seguretat de programari amb finalitats d'anàlisi.

### Anàlisi dinàmica

Radare2 té un depurador integrat de nivell inferior que GDB. També pot connectar amb GDB i WineDBG per depurar binaris de Windows en altres sistemes. A més, també es pot utilitzar com a depurador del nucli amb VMWare.

### Explotació de programari

Com que inclou un desassemblador i un depurador de baix nivell, Radare2 pot ser útil per als desenvolupadors d'⁣explotacions. El programari té funcions que ajuden al desenvolupament d'explotacions, com ara un motor de cerca de gadgets ROP i detecció de mitigació. A causa de la flexibilitat i el suport del programari per a molts formats de fitxers, sovint l'utilitzen els equips de captura i un altre personal orientat a la seguretat. Radare2 també pot ajudar a crear shellcodes amb la seva eina "ragg2", similar a metasploit.

### Interfície gràfica d'usuari (GUI)

El projecte Iaito s'ha desenvolupat com la primera interfície gràfica d'usuari (GUI) dedicada per a Radare2; Cutter l'ha bifurcat com a interfície d'usuari gràfica (GUI) desenvolupada, en segon lloc, per a Radare2. Quan el projecte Cutter es va separar del projecte Radare2 a finals de 2020, Iaito es va tornar a desenvolupar per ser l'actual interfície gràfica d'usuari (GUI) oficial de Radare2 mantinguda pels membres del projecte Radare2.

## Arquitectures i formats compatibles

* Recognized file formats
** COFF and derivatives, including Win32/64/generic PE
** ELF and derivatives
** Mach-O (Mach) and derivatives
** Game Boy and Game Boy Advance cartridges
** MZ (MS-DOS)
** Java class
** Lua 5.1 and Python bytecode
** dyld cache dump
** Dex (Dalvik EXecutable)
** Xbox xbe format
** Plan9 binaries
** WinRAR virtual machine
** File system like the ext family, ReiserFS, HFS+, NTFS, FAT, ...
** DWARF and PDB file formats for storing additional debug information
** Raw binary
* Instruction sets
** Intel x86 family
** ARM architecture
** Atmel AVR series
** Brainfuck
** Motorola 68k and H8
** Ricoh 5A22
** MOS 6502
** Smartcard PSOS Virtual Machine
** Java virtual machine
** MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
** PowerPC
** SPARC Family
** TMS320Cxxx series
** Argonaut RISC Core
** Intel 51 series: 8051/80251b/80251s/80930b/80930s
** Zilog Z80
** CR16
** Cambridge Silicon Radio (CSR)
** AndroidVM Dalvik
** DCPU-16
** EFI bytecode
** Game Boy (z80-like)
** Java Bytecode
** Malbolge
** MSIL/CIL
** Nios II
** SuperH
** Spc700
** Systemz
** TMS320
** V850
** Whitespace
** XCore

## Referències

* 1 2 «Radare demystified». Chaos Computer Club media site. CCC, 29-12-2016. [Consulta: 29 desembre 2016].
* ↑ «I have written more than 300.000 code lines for Radare». www.cigtr.info. Arxivat de l'original el 2018-11-03. [Consulta: 21 gener 2017].
* ↑ CCC (29 December 2016), radare demystified, <https://media.ccc.de/v/33c3-8095-radare_demystified>. Consulta: 21 gener 2017
* ↑ «r2con 2016». NCC Group. [Consulta: 21 gener 2017].
* ↑ «The hacker behind open-source, reverse-engineering tool Radare...» (en anglès). , 09-08-2016.
* ↑ «REcon - Home». [Consulta: 4 juny 2024].
* ↑ «## r2con2021 - witchcraft edition ##». [Consulta: 4 juny 2024].
* ↑ «Recon 2015 Schedule». recon.cx. [Consulta: 21 gener 2017].
* ↑ «Talks at Hack.lu 2015» (en anglès). .
* ↑ «radareorg/radare2-bindings», 12-12-2023.
* ↑ «The new web interface». radare.today. Arxivat de l'original el 2016-07-29.
* 1 2 «iaito». rada.re. [Consulta: 14 agost 2021].
* ↑ «"Binary Diffing" visual en Linux con Radare2».
* ↑ Arada, Eduardo De la. «OSX/Leverage.a Analysis». cybersecurity.att.com, 18-05-2024.
* ↑ «None».
* ↑ PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.
* ↑ «Gmane archive about WinDBG support in radare2». Arxivat de l'original el 2014-11-02. [Consulta: 4 juny 2024].
* ↑ «Plaid CTF 2014 - Tiffany writeup». Dragon Sector.
* ↑ «DEFCON2K12 Prequals: pwn300 writeup». LSE Blog, 04-06-2012.
* ↑ «manual binary mangling with radare». .:: Phrack Magazine ::..
* ↑ «hteso/iaito», 15-05-2024. [Consulta: 4 juny 2024].
* ↑ «rizinorg/cutter», 04-06-2024. [Consulta: 4 juny 2024].
* ↑ «Announcing Rizin». rizin.re, 08-12-2020. [Consulta: 8 desembre 2020].
* ↑ «dyld_shared_cache - iPhone Development Wiki». iphonedev.wiki.
* ↑ «.XBE File Format». www.caustik.com.
* ↑ «Fun with Constrained Programming».

## Bibliografia

* maijin. The radare2 book, 2016.
* monosource. Radare2 Explorations, 2016.
* pancake. The original radare book, 2008, p. 152.

## Enllaços externs

* Radare2 - Lloc web oficial
* Radare2 Git repository
* Iaito Git repository