Radare2

Radare2
logo
Ilustracja
Autor pancake
Aktualna wersja stabilna 5.9.4
(8 sierpnia 2024) [±]
Licencja LGPL
Strona internetowa

Radare2 (znany także jako r2) – kompletny framework do inżynierii wstecznej i analizy plików binarnych; składa się z zestawu pomniejszych narzędzi, które mogą zostać użyte niezależnie od siebie przy pomocy wiersza poleceń. Obsługuje wiele formatów plików wykonywalnych przeznaczonych dla różnych procesorów i systemów operacyjnych.

Funkcjonalność

Jako że Radare2 nie posiada GUI, jego nauka może początkowo okazać się skomplikowana. Pierwotnie został zbudowany na bazie edytora heksadecymalnego, aktualnie posiada wiele narzędzi i funkcji, a także API dla kilku języków programowania[1].

Analiza statyczna

Radare2 potrafi asemblować i deasemblować wiele rodzajów kodu, ale potrafi także między innymi generować binarne diffy[2], czy pozyskiwać symbole debuggera. Jako że pozwala on na pracę także z uszkodzonymi plikami binarnymi, często używany jest do analizy bezpieczeństwa systemów informatycznych[3][4][5].

Analiza dynamiczna

Radare2 ma wbudowany debugger, bardziej niskopoziomowy niż GDB. Posiada także do niego interfejs, obsługuje też WineDBG[6] w celu analizy programów dla Windows na innych systemach operacyjnych. Można go także użyć jako debuggera kernela przy pomocy wsparcia dla VMWare. Radare2 obsługuje protokół WinDBG.

Tworzenie exploitów

Połączenie deasemblera z niskopoziomowym debuggerem sprawia, że radare2 może być użyty przez programistów exploitów. W programie istnieje kilka funkcji, które pomagają w tworzeniu exploitów, na przykład wyszukiwarka gadżetów ROP czy wykrywanie zabezpieczeń. Ze względu na elastyczność radare2 i jego obsługę wielu formatów plików, często jest on używany przez drużyny capture the flag[7][8] i inne osoby związane z bezpieczeństwem systemów komputerowych[9]. Przy pomocy załączonego narzędzia "ragg2", ułatwione jest pisanie shellcode, podobnie jak w przypadku projektu metasploit.

Obsługiwane architektury/formaty plików

  • Obsługiwane formaty plików
  • Zestawy instrukcji procesora
    • Rodzina Intel x86
    • ARM
    • Atmel AVR
    • Brainfuck
    • Motorola 68k oraz H8
    • Ricoh 5A22
    • MOS 6502
    • Maszyny wirtualne Smartcard PSOS
    • Maszyna wirtualna Java
    • MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
    • PowerPC
    • Rodzina SPARC
    • TMS320Cxxx
    • Argonaut RISC Core
    • Intel 51: 8051/80251b/80251s/80930b/80930s
    • Zilog Z80
    • CR16
    • Cambridge Silicon Radio (CSR)
    • AndroidVM Dalvik
    • DCPU-16
    • Bajtkod EFI
    • Gameboy (z80)
    • Bajtkod Java
    • Malebolge
    • MSIL/CIL
    • Nios II
    • SuperH
    • Spc700
    • Systemz
    • TMS320
    • V850
    • Whitespace
    • XCore

Przypisy

  1. Repozytorium Git dla wiązań radare2 do innych języków programowania
  2. "Binary Diffing" visual en Linux con Radare2
  3. AlienVault – OSX/Leverage.a Analysis
  4. Craig Heffner – Finding and Reversing Backdoors in Consumer Firmware. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2016-04-22)].
  5. PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.
  6. Gmane archive about WinDBG support in radare2. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2014-11-02)].
  7. Dragon Sector
  8. LSE
  9. Phrack – manual binary mangling with radare
  10. Dydl cache – iphonedevwiki.net
  11. .. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2015-09-23)].
  12. Tavis Ormandy – Fun with Constrained Programming

Linki zewnętrzne

  • The radare book. pancake. 2008. s. 152. 
  • The r2-book. maijin.github.io. [zarchiwizowane z tego adresu (2015-04-23)].
  • Strona internetowa projektu
  • Blog Radare2
  • Repozytorium Git