Radare2
| |
Tipus | desassemblador, depurador i programari lliure |
---|---|
Versió inicial | febrer 2006 |
Versió estable | |
Llicència | GNU LGPL |
Disponible en | |
Característiques tècniques | |
Sistema operatiu | Microsoft Windows, macOS, Linux, list of BSD operating systems (en) , Haiku, Android, Solaris, MeeGo, BSD, iOS, Firefox OS i QNX |
Escrit en | C |
Biblioteca d'interfície d'usuari | línia d'ordres i interfície gràfica d'usuari |
Més informació | |
Lloc web | radare.org… (anglès) |
Free Software Directory | 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
[modifica]Radare2 va ser creat el febrer de 2006 per l'analista i investigador en seguretat de tecnologia mòbil Sergi Àlvarez,[1] 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.[2]
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,[3] i va atreure diversos desenvolupadors residents.
L'any 2016 va tenir lloc a Barcelona la primera trobada r2con[4][5] 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,[6][7][8] hack.lu,[9] i 33c3.[1]
Característiques i ús
[modifica]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.[10] Mentrestant té una WebUI[11] i el projecte oficial d'interfície gràfica d'usuari per a Radare2 es diu Iaito.[12]
Anàlisi estàtica
[modifica]Radare2 és capaç de muntar i desmuntar molts programes de programari, principalment executables, però també pot realitzar diferències binàries amb gràfics,[13] 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.[14][15][16]
Anàlisi dinàmica
[modifica]Radare2 té un depurador integrat de nivell inferior que GDB. També pot connectar amb GDB i WineDBG[17] 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
[modifica]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[18][19] i un altre personal orientat a la seguretat.[20] Radare2 també pot ajudar a crear shellcodes amb la seva eina "ragg2", similar a metasploit.
Interfície gràfica d'usuari (GUI)
[modifica]El projecte Iaito[21] s'ha desenvolupat com la primera interfície gràfica d'usuari (GUI) dedicada per a Radare2; Cutter[22] 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,[23] 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.[12]
Arquitectures i formats compatibles
[modifica]- 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[24]
- Dex (Dalvik EXecutable)
- Xbox xbe format[25]
- Plan9 binaries
- WinRAR virtual machine[26]
- 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
[modifica]- ↑ 1,0 1,1 «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.
- ↑ 12,0 12,1 «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
[modifica]- maijin. The radare2 book, 2016.
- monosource. Radare2 Explorations, 2016.
- pancake. The original radare book, 2008, p. 152.