Radare2
Autor | pancake |
---|---|
Aktualna wersja stabilna | 5.9.8 (19 listopada 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ść
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]- Obsługiwane formaty plików
- COFF i pochodne, włącznie z Win32/64/generic PE
- ELF i pochodne
- Mach-O (Mach) i pochodne
- Kartridże Game Boy oraz Game Boy Advance
- MZ (MS-DOS)
- Java class
- dyld cache dump[10]
- Dex (Dalvik EXecutable)
- Format Xbox xbe[11]
- Pliki binarne Plan9
- Maszyna wirtualna Winrar[12]
- Systemy plików z rodzin ext, ReiserFS, HFS+, NTFS, FAT, ...
- DWARF oraz PDB w celu przechowywania dodatkowych informacji debuggera
- Surowe pliki binarne
- 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
[edytuj | edytuj kod]- ↑ Repozytorium Git dla wiązań radare2 do innych języków programowania
- ↑ "Binary Diffing" visual en Linux con Radare2
- ↑ AlienVault – OSX/Leverage.a Analysis
- ↑ Craig Heffner – Finding and Reversing Backdoors in Consumer Firmware. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2016-04-22)].
- ↑ PHDays IV, May 21, 2014, 'Anton Kochkov', Application of radare2 illustrated by Shylock/Caphaw.
- ↑ Gmane archive about WinDBG support in radare2. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2014-11-02)].
- ↑ Dragon Sector
- ↑ LSE
- ↑ Phrack – manual binary mangling with radare
- ↑ Dydl cache – iphonedevwiki.net
- ↑ .. [dostęp 2015-12-27]. [zarchiwizowane z tego adresu (2015-09-23)].
- ↑ Tavis Ormandy – Fun with Constrained Programming
Linki zewnętrzne
[edytuj | edytuj kod]- 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