Relyze - Desassemblador Interativo e Comparação de Binários
Relyze é uma plataforma de desassemblador interativo, descompilador e comparação binária comercial para software nativo, suportando x86, x64, ARM32 e ARM64. Analisa binários PE/ELF em funções e grafos de fluxo de controle, fornece um descompilador para recuperar pseudocódigo de nível superior, e inclui um forte engine de diferença binária para comparar duas versões de um binário — inestimável para análise de patch e rastreamento de variantes de malware. É extensível através de um framework de plugins/scripting Ruby. Uma edição gratuita não-comercial está disponível.
Instalação
| Passo | Notas |
|---|
| Download | Obtenha o instalador do site oficial (Windows) |
| Edições | Gratuita (não-comercial) e Professional |
| Primeira execução | Configure o descompilador e opções de análise |
| Plugins | Scripting Ruby disponível na caixa |
Fluxo de Trabalho de Análise
| Ação | Descrição |
|---|
| Abrir um arquivo | Analise um binário PE ou ELF em funções/CFG |
| Visualização de funções | Procure funções descobertas |
| Visualização de grafo | Grafo de fluxo de controle da função selecionada |
| Descompilador | Recupere pseudocódigo similar a C para uma função |
| Strings | Liste strings referenciadas e seus xrefs |
| Imports/Exports | Inspecione as tabelas de importação/exportação |
| Referências cruzadas | Pule para onde uma função/dados é usada |
Essenciais de Navegação
| Tarefa | Como |
|---|
| Renomear um símbolo | Selecione e renomeie (propaga para xrefs) |
| Comentário | Anote instruções/funções |
| Seguir uma chamada | Clique duplo em alvo de chamada |
| Ir para endereço | Caixa de navegação de endereço |
| Alternar visualização | Alterne desassembly / grafo / descompilador |
Comparação Binária
O engine de diferença do Relyze combina funções entre dois binários e as classifica como idênticas, alteradas, adicionadas ou removidas — o fluxo de trabalho central para análise de patches de segurança ou comparação de amostras de malware.
| Tarefa | Como |
|---|
| Iniciar uma comparação | Abra binário A, depois compare com binário B |
| Funções combinadas | Revise funções emparelhadas entre as duas compilações |
| Funções alteradas | Foque em funções cujo código difere |
| Adicionado/removido | Veja o que o patch introduziu ou deletou |
| Portar anotações | Carregue nomes/comentários de uma compilação para a próxima |
Padrão de análise de patch: compare os binários pré-patch e pós-patch, foque no pequeno conjunto de funções alteradas, e estude o que o fornecedor corrigiu para entender a vulnerabilidade subjacente.
Scripting Ruby
Relyze expõe seu modelo de análise para Ruby para automação.
# Conceitual: itere funções e sinalize grandes
model = Relyze::Engine.instance.active_model
model.functions.each do |func|
if func.instructions.length > 500
puts "Large function at #{func.address.to_s(16)}"
end
end
| Uso | Exemplo |
|---|
| Renomeação em massa | Aplique heurísticas de nomeação entre funções |
| Análise personalizada | Detecte padrões (constantes criptográficos, gadgets) |
| Exportar dados | Despeje funções/strings para um arquivo |
| Automatizar diferença | Script comparações entre muitas amostras |
Fluxos de Trabalho Comuns
| Meta | Abordagem |
|---|
| Entender um patch de segurança | Compare binários pré/pós → estude funções alteradas |
| Triagem de uma amostra nativa | Strings + imports → descompile funções suspeitas |
| Rastrear variantes de malware | Compare nova amostra contra membro da família conhecida |
| Recuperar lógica | Use o descompilador + renomeie/comente para reconstruir intenção |
Relyze vs Outros Desassembladores
| Aspecto | Relyze | IDA Pro | Ghidra | Binary Ninja |
|---|
| Descompilador | Sim | Sim (Hex-Rays) | Sim | Sim |
| Diferença binária | Construída | Add-on (BinDiff) | Plugins | Plugins |
| Scripting | Ruby | Python/IDC | Java/Python | Python |
| Custo | Gratuito + Pro | Comercial | Gratuito | Comercial |
Recursos