
Framework di reverse engineering e set di strumenti da riga di comando in stile UNIX
<a href="https://radare.org/"><img border=0 src="https://assets.kitploit.com/production/public/readmes/3006/3a698148c5a0a1bc714cb3ac4439316f08cf2349b8cd75366bc1b9d2bf7f9c22.png" alt="screenshot" align="left" width="128px"></a>
## Radare2: Framework di Reversing Libero per Unix Geeks
[](https://github.com/radareorg/radare2/actions/workflows/ci.yml?query=branch%3Amaster) [](https://github.com/radareorg/radare2/actions/workflows/build.yml?query=branch%3Amaster) [](https://github.com/radareorg/radare2/actions/workflows/tcc.yml)
[](https://bestpractices.coreinfrastructure.org/projects/741) [](https://scan.coverity.com/projects/416) [](https://discord.gg/YBey7CR9jf)
L'attuale branch git `master` è `6.2.5`, la prossima release sarà `6.2.6`.
### Descrizione
r2 è una riscrittura completa di radare. Fornisce un insieme di librerie, strumenti e
plugin per facilitare le attività di reverse engineering. Distribuito sotto LGPLv3, nonostante
ogni plugin possa avere licenze differenti (vedi `r2 -Lj` per dettagli)
Il progetto **radare** è iniziato come un semplice editor esadecimale a riga di comando
focalizzato sulla forensics. Oggi, r2 è uno strumento a riga di comando di basso livello completo
con supporto per lo scripting tramite l'interprete Javascript integrato o via r2pipe.
r2 può modificare file su dischi rigidi locali, visualizzare la memoria del kernel e fare debug di programmi
localmente o tramite server gdb/windbg remoti. L'ampio supporto per le architetture di r2 consente
di analizzare, emulare, fare debug, modificare e disassemblare qualsiasi binario.
<p align="center">
<a href="https://www.radare.org/"><img src="https://assets.kitploit.com/production/public/readmes/3006/c19b136adc5b00ffa9e295f2624beea0f7fb78e36cfa8081c31116b9a5723a85.png" alt="screenshot" align="center" border=0 width="600px"></a>
</p>
## Installazione
Scarica gli ultimi binari [rilasciati](https://github.com/radareorg/radare2/releases).
Il modo consigliato per installare radare2 è dal sorgente del repository Git:
```sh
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
```
* Esegui `sys/install.sh` per l'installazione predefinita acr+make+symlink
* Sono supportate le build con meson/ninja (funziona anche muon/samu) e make.
### Nix
radare2 fornisce il packaging Nix in [`dist/nix`](https://github.com/radareorg/radare2/blob/master/dist/nix/README.md).
### Build dai sorgenti
* r2 può essere installato da `git` o tramite `pip` usando `r2env`.
* Le build per Windows richiedono meson e msvc o mingw come compilatori
* Per disinstallare la build corrente di r2 esegui `make uninstall`
* Per disinstallare TUTTE le installazioni di sistema di r2 esegui: `sudo make purge`
Su Windows usa gli script .bat e msvc:
```bat
preconfigure.bat REM setup python, meson, ninja
configure.bat REM run meson b + vs project
make.bat REM run ninja -C b
prefix\bin\radare2.exe
```
## Plugin popolari:
Usando lo strumento `r2pm` puoi sfogliare e installare molti plugin e strumenti che utilizzano radare2.
* [iaito](https://github.com/radareorg/iaito): L'interfaccia grafica Qt ufficiale
* [keystone](https://github.com/radareorg/radare2-extras/tree/master/keystone) Istruzioni assembler usando la libreria Keystone
* [decai](https://github.com/radareorg/r2ai) Decompilatore basato sull'IA
* [r2ai](https://github.com/radareorg/r2ai) Esegui un Language Model in localhost con Llama dentro r2!
* [r2dec](https://github.com/wargio/r2dec-js): Un decompilatore basato su r2 scritto in JS, accessibile con il comando `pdd`
* [r2diaphora](https://github.com/FernandoDoming/r2diaphora): Il motore di diffing binario di [Diaphora](https://github.com/joxeankoret/diaphora) sopra radare2
* [r2flutter](https://github.com/trufae/r2flutter): Analisi degli snapshot AOT Dart/Flutter per app Android e iOS
* [r2frida](https://github.com/nowsecure/r2frida): Il plugin io di frida. Avvia r2 con `r2 frida://0` per usarlo
* [r2ghidra](https://github.com/radareorg/r2ghidra): Il decompilatore nativo standalone ghidra accessibile con `pdg`
* [r4ghidra](https://github.com/radareorg/r4ghidra): Senti la gioia di radare dentro il tuo Ghidra
* [r2papi](https://github.com/radareorg/radare2-r2papi) API di alto livello sopra r2pipe
* [r2pipe](https://github.com/radareorg/radare2-r2pipe) Scripta radare2 da qualsiasi linguaggio di programmazione
* [r2poke](https://github.com/radareorg/radare2-extras/tree/master/r2poke) Integrazione con GNU/Poke per capacità estese di parsing binario
* [goresym](https://github.com/hanemile/radare2-GoReSym): Importa i simboli GoReSym come flag
* [r2yara](https://github.com/radareorg/r2yara) Esegui Yara da r2 o usa le primitive di r2 da Yara
* [radius2](https://github.com/radareorg/radius2): Un motore di esecuzione simbolica veloce basato su boolector ed esil
* [r2sarif](https://github.com/radareorg/r2sarif) importa/estendi/esporta documenti SARIF
* [r2hermes](https://github.com/radareorg/r2hermes) Disassembler e analizzatore per il bytecode Hermes di React Native
* [r2renef](https://github.com/Ahmeth4n/r2renef) Plugin IO Renef per Radare2 - Strumentazione dinamica Android
* [r2unity](https://github.com/radareorg/r2unity): Ispeziona i metadati Unity IL2CPP e i binari nativi da radare2
* [warrp](https://github.com/radareorg/warrp) Plugin nativo radare2 per il formato WARP di binary ninja
## Utilizzo
Questi sono i primi passi per usare r2, leggi il libro o cerca tutorial per maggiori dettagli
```sh
$ r2 /bin/ls # open file in read-only
> aaa # analyse the program (r2 -A)
> afl # list all functions (try aflt, aflm)
> px 32 # print 32 byte hexdump current block
> s sym.main # seek to main (using flag name)
> f~foo # filter flags matching 'foo' (internal |grep)
> iS;is # list sections and symbols (rabin2 -Ss)
> pdf; agf # disassembly and ascii-art function graph
> oo+;w hello # reopen in read-write and write a string
> ?*~... # interactive filter in all command help
> q # quit
```
Molti plugin sono inclusi in r2 per impostazione predefinita. Ma puoi estendere le sue capacità
utilizzando il gestore di pacchetti [r2pm](https://github.com/radareorg/radare2-pm).
```sh
r2pm -s <word> # search packages matching a word
r2pm -Uci <pkg> # update database and clean install a package
r2pm -u <pkg> # uninstall the given package
r2pm -l <pkg> # list installed packages
```
## Risorse
* [Libro ufficiale](https://book.rada.re): Leggi informazioni sull'utilizzo di r2
* [COMMUNITY.md](https://github.com/radareorg/radare2/blob/master/COMMUNITY.md): Coinvolgimento della community e linee guida generali
* [CONTRIBUTING.md](https://github.com/radareorg/radare2/blob/master/CONTRIBUTING.md): Informazioni su come segnalare problemi e
contribuire. Vedi anche [Contributing](#contributing)
* [DEVELOPERS.md](https://github.com/radareorg/radare2/blob/master/DEVELOPERS.md): Linee guida di sviluppo per r2
* [SECURITY.md](https://github.com/radareorg/radare2/blob/master/SECURITY.md): Istruzioni per segnalare vulnerabilità
* [USAGE.md](https://github.com/radareorg/radare2/blob/master/USAGE.md): Alcuni comandi di esempio
* [INSTALL.md](https://github.com/radareorg/radare2/blob/master/INSTALL.md): Istruzioni di installazione usando make o meson
## Documentazione
Scopri di più su r2 guardando i [talk su youtube](https://www.youtube.com/c/r2con) di [r2con](https://rada.re/con). Ci sono anche molti blogpost, slidedeck e il [libro ufficiale di radare2](https://book.rada.re), ma è sempre una buona idea unirsi a una delle chat ufficiali e porre lì le tue domande o lasciare un feedback.
## Community
* Sito web: [https://www.radare.org/](https://www.radare.org/)
* Discord: [Server](https://discord.gg/YBey7CR9jf)
* Mastodon: [@radareorg](https://infosec.exchange/@radareorg)
* Telegram: canali [Main](https://t.me/radare) e [Side](https://t.me/radare_side)
* [irc.libera.chat](https://libera.chat): `#radare`, `#radare_side`
* [Matrix](https://matrix.to/#/#radare:matrix.org): `#radare:matrix.org`
# Piattaforme supportate
## Sistemi operativi
Windows (da XP per x86/x64/arm64), Linux, Darwin, GNU/Hurd, {Mac,i,iPad,watch}OS di Apple,
Android, Wasmer, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, AIX,
Haiku, Vinix, FirefoxOS.
## Architetture
i386, x86-64, Alpha, ARM, AVR, BPF, sBPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k,
S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, PDP11, m680x, V850,
CRIS, XAP (CSR), PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, OR1K
Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, xcore,
NIOS II, Java, Dalvik, Pickle, WebAssembly, MSIL, EBC, TMS320 (c54x, c55x,
c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, lm32,
MSIL, InfernoDis, UXN, Cosmac, PythonBytecode, Sharp sm5xx MCPus, FreeScale QIQa,
MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8, s390x, STM8.
## Formati di file
ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, XCOFF, OMF, TE, XBE, SEP64, BIOS/UEFI, BFLT, app Pebble,
Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, Java class, Android boot image, eseguibili Plan9, Amiga HUNK,
ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, DotNet,
WASM (WebAssembly binary), emulatore Commodore VICE, DOL, QNX, WAD, OFF, TIC-80,
GB/GBA, PSX, PRG (C64), Apple Classic PEF, NDS, z64 e N3DS
...
## FileSystem
Monta in userland diversi filesystem come NTFS, FAT, HFS+, EXT, APFS, BeosFS, BFS, MINIX, ReiserFS, SFS, ubifs, ufs, jfs, ISO9660, UDF, xfs
## Stato del packaging
* [](https://snapcraft.io/radare2)
* [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)