Radare2 (también conocido como r2 ) es un marco completo para la ingeniería inversa y el análisis de binarios; compuesto por un conjunto de pequeñas utilidades que se pueden utilizar juntas o independientemente desde la línea de comandos . Construido alrededor de un desensamblador para software de computadora que genera código fuente en lenguaje ensamblador a partir de código ejecutable por máquina, admite una variedad de formatos ejecutables para diferentes arquitecturas de procesador y sistemas operativos .
Autor (es) original (es) | Sergi Alvarez (panqueque) |
---|---|
Desarrollador (es) | panqueque y los contribuyentes principales |
Lanzamiento estable | 5.2.1 / 21 de abril de 2021 [1] |
Repositorio | |
Escrito en | C [2] |
Sistema operativo | Linux , BSD , macOS , Microsoft Windows , Haiku , Android , iOS , Solaris |
Disponible en | inglés |
Tipo | Desensamblador |
Licencia | LGPL |
Sitio web | www |
Historia
Radare2 fue creado en febrero de 2006, [3] con el objetivo de proporcionar una interfaz de línea de comandos simple y gratuita para un editor hexadecimal que admite compensaciones de 64 bits para realizar búsquedas y recuperar datos de discos duros , con fines forenses. Desde entonces, el proyecto ha crecido con el objetivo cambiado para proporcionar un marco completo para analizar binarios mientras se adhiere a varios principios de la filosofía Unix . [4]
En 2009, se tomó la decisión de reescribirlo por completo, para sortear las limitaciones en el diseño inicial. Desde entonces, el proyecto siguió creciendo [5] y atrajo a varios desarrolladores residentes.
En 2016, tuvo lugar el primer r2con en Barcelona , [6] [7] reuniendo a más de 100 participantes, con diversas charlas sobre diversas características y mejoras del framework.
Radare2 ha sido el foco de múltiples presentaciones en varias conferencias de seguridad de alto perfil, como recon , [8] hack.lu , [9] 33c3 . [3]
Radare2 fue bifurcado en diciembre de 2020 como Rizin por algunos miembros de los equipos de desarrollo centrales de radare2 y Cutter que buscan "centrarse en la usabilidad, la estabilidad y las funciones de trabajo, que se esfuerzan por proporcionar un entorno acogedor para desarrolladores y usuarios". [10]
Funciones y uso
Radare2 tiene una curva de aprendizaje pronunciada ya que no tiene una GUI por sí mismo. Originalmente construido alrededor de un editor hexadecimal, ahora tiene una multitud de herramientas y características, y también enlaces para varios idiomas. [11] Mientras tanto, tiene un WebUI [12] y hay un GUI externo de Qt llamado Cutter (anteriormente llamado Iaito). [13]
Análisis estático
Radare2 es capaz de ensamblar y desensamblar una gran cantidad de programas de software, principalmente ejecutables, pero también puede realizar diferencias binarias con gráficos, [14] extraer información como símbolos de reubicación y varios otros tipos de datos. Internamente, utiliza una base de datos NoSQL llamada sdb para realizar un seguimiento de la información de análisis que puede ser inferida por radare2 o agregada manualmente por el usuario. Dado que es capaz de lidiar con binarios con formato incorrecto, los investigadores de seguridad de software también lo han utilizado con fines de análisis. [15] [16] [17]
Análisis dinámico
Radare2 tiene un depurador integrado de nivel inferior al de GDB . También puede interactuar con GDB y WineDBG [18] para depurar binarios de Windows en otros sistemas. Además, también se puede utilizar como depurador de kernel con VMWare .
Explotación de software
Dado que cuenta con un desensamblador y un depurador de bajo nivel, radare2 puede ser útil para los desarrolladores de exploits . El software tiene características que ayudan en el desarrollo de exploits, como un motor de búsqueda de dispositivos ROP y detección de mitigación . Debido a la flexibilidad del software y al soporte para muchos formatos de archivo, a menudo lo utilizan los equipos de captura de banderas [19] [20] y otro personal orientado a la seguridad. [21] Radare2 también puede ayudar en la creación de shellcodes con su herramienta 'ragg2', similar a Metasploit .
Cortador
Cutter fue la primera interfaz gráfica de usuario (GUI) oficial para radare2. Está principalmente dirigido "a aquellos que [se] aún no son usuarios de radare2 debido a la curva de aprendizaje, porque no les gustan las aplicaciones CLI o por la dificultad / inestabilidad de radare2". Fue el sucesor del proyecto Iaito anteriormente conocido que sufrió muy poco mantenimiento después de que se convirtió en código abierto en GitHub . Más tarde, Iaito fue bifurcado y reescrito en gran medida, nuevamente con C ++ y Qt como base. Estas opciones de diseño le permiten ser una aplicación multiplataforma dirigida a Linux, MacOS y Windows . Al mismo tiempo, se le cambió el nombre a Cutter. El objetivo de Cutter es exportar la amplia funcionalidad de radare2 a una GUI moderna y fácil de usar que pueda competir con otros marcos de análisis estáticos y dinámicos importantes como Hex-Rays Interactive Disassembler o Binary Ninja .
En 2020, el equipo central de Cutter, que también formaba parte del equipo central de radare2, dejó radare2 y cofundó Rizin. Después de esto, Cutter cambió de radare2 a Rizin como su backend. [22] Actualmente, Iaito es una bifurcación de Cutter con la última confirmación en funcionamiento con radare2.
Arquitecturas / formatos compatibles
- Formatos de archivo reconocidos
- COFF y derivados, incluido Win32 / 64 / genérico PE
- ELF y derivados
- Mach-O ( Mach ) y derivados
- Cartuchos de Game Boy y Game Boy Advance
- MZ ( MS-DOS )
- Clase Java
- Lua 5.1 y código de bytes de Python
- volcado de caché dyld [23]
- Dex ( ejecutable en Dalvik )
- Formato Xbox xbe [24]
- Plan9 binarios
- Máquina virtual WinRAR [25]
- Sistema de archivos como la familia ext , ReiserFS , HFS + , NTFS , FAT , ...
- Formatos de archivo DWARF y PDB para almacenar información de depuración adicional
- Binario crudo
- Conjuntos de instrucciones
- Familia Intel x86
- Arquitectura ARM
- Serie Atmel AVR
- Brainfuck
- Motorola 68k y H8
- Ricoh 5A22
- MOS 6502
- Máquina virtual de tarjeta inteligente PSOS
- Máquina virtual de Java
- MIPS : mipsb / mipsl / mipsr / mipsrl / r5900b / r5900l
- PowerPC
- Familia SPARC
- Serie TMS320Cxxx
- Argonaut RISC Core
- Serie Intel 51: 8051 / 80251b / 80251s / 80930b / 80930s
- Zilog Z80
- CR16
- Cambridge Silicon Radio (CSR)
- AndroidVM Dalvik
- DCPU-16
- Código de bytes EFI
- Game Boy (similar a z80)
- Código de bytes de Java
- Malbolge
- MSIL / CIL
- Nios II
- SuperH
- Spc700
- Systemz
- TMS320
- V850
- Espacio en blanco
- XCore
Referencias
- ^ "Lanzamientos · radareorg / radare2" . github.com . Consultado el 26 de abril de 2021 .
- ^ Repositorio de Git
- ^ a b "Radare desmitificado" . Sitio de medios de Chaos Computer Club . CCC. 2016-12-29 . Consultado el 29 de diciembre de 2016 .
- ^ "He escrito más de 300.000 líneas de código para Radare" . www.cigtr.info . Archivado desde el original el 3 de noviembre de 2018 . Consultado el 21 de enero de 2017 .
- ^ CCC, radare desmitificado , recuperada 01/21/2017
- ^ "r2con 2016" . Grupo NCC . Consultado el 21 de enero de 2017 .
- ^ Bakken, Sam (9 de agosto de 2016). "El hacker detrás de la herramienta de ingeniería inversa de código abierto Radare ..." NowSecure . Consultado el 21 de enero de 2017 .
- ^ "Programación Recon 2015" . recon.cx . Consultado el 21 de enero de 2017 .
- ^ "Charlas en Hack.lu 2015" . Hack.lu 2015 . Consultado el 21 de enero de 2017 .
- ^ ¡ Anunciando a Rizin!
- ^ Repositorio de Git para enlaces de radare2
- ^ La nueva interfaz web
- ^ Cortador
- ^ Visualización de "diferenciación binaria" en Linux con Radare2
- ^ AlienVault - OSX / Leverage.a Análisis
- ^ Craig Heffner - Encontrar e invertir puertas traseras en el firmware del consumidor
- ^ PHDays IV, 21 de mayo de 2014, 'Anton Kochkov', Aplicación de radare2 ilustrada por Shylock / Caphaw.D y Snakso.A análisis
- ^ Archivo de Gmane sobre el soporte de WinDBG en radare2
- ^ Sector Dragón
- ^ LSE
- ^ Phrack - manipulación binaria manual con radare
- ^ Rizin (5 de diciembre de 2020). "Preguntas frecuentes" . Rizin . Consultado el 26 de abril de 2021 .
- ^ Caché Dydl - iphonedevwiki.net
- ^ Formato de archivo .XBE 1.1
- ^ Tavis Ormandy - Diversión con programación restringida
Otras lecturas
- maijin (2016). El libro radare2 . Consultado el 20 de marzo de 2016 .
- monosource (2016). Exploraciones Radare2 . Consultado el 19 de enero de 2017 .
- panqueque (2008). El libro original de radare (PDF) . pag. 152.
enlaces externos
- Página web oficial
- Blog de Radare2
- repositorio Git radare2
- Repositorio Cutter Git