Ocorreu o lançamento da estrutura para engenharia reversa Rizin e do shell gráfico associado Cutter. O projeto Rizin começou como uma bifurcação da estrutura Radare2 e continuou seu desenvolvimento com ênfase em uma API conveniente e foco na análise de código sem análise forense. Desde a bifurcação, o projeto mudou para um mecanismo fundamentalmente diferente para salvar sessões (“projetos”) na forma de um estado baseado na serialização. Além disso, a base de código foi significativamente redesenhada para torná-la mais fácil de manter. O código do projeto é escrito em C e distribuído sob a licença LGPLv3.
O shell gráfico do Cutter é escrito em C++ usando Qt e distribuído sob a licença GPLv3. Cutter, assim como o próprio Rizin, visa o processo de engenharia reversa de programas em código de máquina ou bytecode (por exemplo JVM ou PYC). Existem plugins de descompilação para Cutter/Rizin baseados em Ghidra, JSdec e RetDec.
Na nova versão:
- Adicionado suporte para criação de assinaturas FLIRT, que podem então ser carregadas no IDA Pro;
- O pacote inclui um banco de dados de assinaturas padrão para bibliotecas populares;
- Melhor reconhecimento de funções e linhas de arquivos executáveis em Go para x86/x64/PowerPC/MIPS/ARM/RISC-V;
- Uma nova linguagem de representação intermediária RzIL baseada na BAP Core Theory (linguagem semelhante a SMT) foi implementada;
- Adicionada a capacidade de detectar automaticamente o endereço base para arquivos “brutos”;
- Foi implementado suporte para carregamento de “instantâneos” de memória baseados em formatos Windows PageDump/Minidump em modo de depuração;
- Trabalho aprimorado com depuradores remotos baseados em WinDbg/KD.
- No momento, o suporte para arquiteturas ARMv7/ARMv8, AVR, 6052, brainfuck foi transferido para o novo RzIL. No próximo lançamento está prevista a conclusão da tradução para SuperH, PowerPC e parcialmente x86.
Também lançado adicionalmente:
- rz-libyara – plugin para Rizin/Cutter para suportar carregamento e criação de assinaturas no formato Yara;
- rz-libdemangle – biblioteca de decodificação de nomes de funções para linguagens C++/ObjC/Rust/Swift/Java;
- rz-ghidra – plugin para Rizin/Cutter para descompilação (baseado no código Ghidra C++);
- jsdec – plugin para Rizin/Cutter para descompilar o desenvolvimento original;
- rz-retdec – plugin para Rizin/Cutter para descompilação (baseado em RetDec);
- rz-tracetest – um utilitário para verificar a exatidão da tradução do código de máquina em RzIL por comparação com um rastreamento de emulação (baseado em QEMU, VICE).
Fonte: opennet.ru