Radare2: Free Reversing Framework para Unix Geeks
Consulte a página de lançamentos para downloads.https://github.com/radareorg/radare2/releases
A ramificação git master atual é 5.7.9, a próxima será 5.8.0.
Desde r2-5.6.0 todos os lançamentos de patch são abi estáveis
As versões de patch ímpares são usadas apenas em compilações git, as versões usam números pares
Não há necessidade de recompilar os plugins, ligações ou ferramentas se a versão principal e secundária forem as mesmas
Descrição
r2 é uma reescrita completa do radare. Ele fornece um conjunto de bibliotecas, ferramentas e plug-ins para facilitar as tarefas de engenharia reversa. Distribuído principalmente sob LGPLv3, cada plug-in pode ter licenças diferentes (consulte r2 -L, rasm2 -L, ...).
O projeto radare começou como um simples editor hexadecimal de linha de comando focado em análise forense. Hoje, o r2 é uma ferramenta de linha de comando de baixo nível com suporte para scripts. O r2 pode editar arquivos em discos rígidos locais, visualizar a memória do kernel e depurar programas localmente ou por meio de um servidor gdb remoto. O amplo suporte à arquitetura do r2 permite analisar, emular, depurar, modificar e desmontar qualquer binário.
Instalação
r2 pode ser instalado a partir do git ou via pip usando r2env.
Execute sys/install.sh para a instalação padrão acr+make+symlink
meson/ninja (muon/samu também funciona) e make builds são suportados.
Compilações do Windows requerem meson e msvc ou mingw como compiladores
Para desinstalar a versão atual do r2, execute make desinstalar
Para desinstalar TODAS as instalações do sistema do r2, faça: sudo make purge
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh Compilações
padrão do Windows usam MSVC, então execute aqueles .bat:
preconfigure.bat REM setup python, meson, ninja
configure.bat REM run meson b + vs projeto
make.bat REM run ninja -C b
prefix\bin\radare2.exe
Como alternativa, você pode usar r2env para alternar entre diferentes versões.
pip install -U r2env
r2env init
r2env add radare2@git
Uso
Estes são os primeiros passos para usar r2, leia o livro ou encontre tutoriais para obter mais detalhes
$ r2 /bin/ls # abra o binário em modo somente leitura
> aaa # igual a r2 -A, analise o binário
> afl # liste tudo funções (tente aflt, aflm)
> px 32 # imprime bloco atual hexdump de 32 bytes
> s sym.main # procura o deslocamento fornecido (pelo nome do sinalizador, número, ..)
> f~foo # filtra sinalizadores com ~grep (o mesmo as |grep)
> iS;is # lista seções e símbolos (o mesmo que rabin2 -Ss)
> pdf; agf # imprima a função e mostre o gráfico de fluxo de controle em ascii-art
> oo+;w olá # reabra no modo rw e escreva uma string no deslocamento atual
> ?*~... # filtro interativo de todas as mensagens de ajuda do comando
> q # Sair
Recursos
Livro oficial do radare2 : Leia sobre o uso do r2
COMMUNITY.md : Engajamento da comunidade e diretrizes soltas
CONTRIBUTING.md : Informações sobre como relatar problemas e contribuir. Veja também Contribuindo
DEVELOPERS.md : Diretrizes de desenvolvimento para r2
SECURITY.md : Instruções para relatar vulnerabilidades
USAGE.md : Alguns exemplos de comandos
INSTALL.md : Instruções de instalação usando make ou meson
plugins
Muitos plugins estão incluídos no r2 por padrão. Mas você pode estender seus recursos usando o gerenciador de pacotes r2pm .
r2pm -s <palavra> # pesquisa pacote por palavra
r2pm -ci <pkg> # instala um pacote Os pacotes
mais populares são:
esilsolve : O plug-in de execução simbólica, baseado em esil e z3
iaito : A interface gráfica oficial do Qt
radius2 : Um mecanismo de execução simbólica rápido baseado em boolector e esil
r2dec : Um descompilador baseado em r2 escrito em JS, acessado com o comando pdd
r2ghidra : O plug-in de descompilador ghidra nativo, acessado com o comando pdf
r2frida : O plugin frida io. Inicie r2 com r2 frida://0 para usá-lo
Contribuindo
Existem muitas formas de contribuir com o projeto. Entre em contato com a comunidade , verifique os problemas do github ou grep para comentários TODO/FIXME/XXX na fonte.
Para contribuir com código, envie suas alterações para uma ramificação em sua bifurcação do repositório. Certifique-se de seguir as diretrizes de codificação e estilo e que suas alterações sejam aprovadas no conjunto de testes, que pode ser executado com a ferramenta r2r. Se você estiver adicionando código significativo, pode ser necessário modificar ou adicionar testes adicionais no diretório test/.
Para obter mais detalhes, consulte CONTRIBUTING.md e DEVELOPERS.md .
Documentação
Para saber mais sobre o r2, recomendamos que você assista às palestras do youtube do r2con . Além de ler postagens de blog, slides ou o livro oficial do radare2 , aqui estão alguns métodos para entrar em contato conosco:
comunidade
irc.libera.chat : #radare, #radare_side
Matrix : #radare:matrix.org
Telegram: Canal Principal e Canal Lateral
Servidor de discórdia
Twitter: @radareorg
Site: https://www.radare.org/
Plataformas suportadas
Sistemas operacionais
Windows (desde XP), Linux, Darwin, GNU/Hurd, Apple's {Mac,i,iPad,watch}OS, Android, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, Haiku , Vinix, FirefoxOS.
Arquiteturas
i386, x86-64, ARM, BPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, m680x, AVR, XAP, S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, V850, CRIS, XAP, PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, NIOS II, Java, Dalvik, WebAssembly , MSIL, EBC, TMS320 (c54x, c55x, c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8.
Formatos de arquivo
ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, OMF, TE, XBE, BIOS/UEFI, Dyldcache, DEX, ART, CGC, classe Java, imagem de inicialização do Android, executável Plan9, ZIMG, MBN/ SBL bootloader, ELF coredump, MDMP (minidump do Windows), WASM (binário WebAssembly), emulador Commodore VICE, QNX, WAD, OFF, TIC-80 Game Boy (Advance), Nintendo DS ROMs e Nintendo 3DS FIRMs, vários sistemas de arquivos.