Pular para o conteúdo

Relyze - Desassemblador Interativo e Comparação de Binários

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

PassoNotas
DownloadObtenha o instalador do site oficial (Windows)
EdiçõesGratuita (não-comercial) e Professional
Primeira execuçãoConfigure o descompilador e opções de análise
PluginsScripting Ruby disponível na caixa

Fluxo de Trabalho de Análise

AçãoDescrição
Abrir um arquivoAnalise um binário PE ou ELF em funções/CFG
Visualização de funçõesProcure funções descobertas
Visualização de grafoGrafo de fluxo de controle da função selecionada
DescompiladorRecupere pseudocódigo similar a C para uma função
StringsListe strings referenciadas e seus xrefs
Imports/ExportsInspecione as tabelas de importação/exportação
Referências cruzadasPule para onde uma função/dados é usada

Essenciais de Navegação

TarefaComo
Renomear um símboloSelecione e renomeie (propaga para xrefs)
ComentárioAnote instruções/funções
Seguir uma chamadaClique duplo em alvo de chamada
Ir para endereçoCaixa de navegação de endereço
Alternar visualizaçãoAlterne 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.

TarefaComo
Iniciar uma comparaçãoAbra binário A, depois compare com binário B
Funções combinadasRevise funções emparelhadas entre as duas compilações
Funções alteradasFoque em funções cujo código difere
Adicionado/removidoVeja o que o patch introduziu ou deletou
Portar anotaçõesCarregue 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
UsoExemplo
Renomeação em massaAplique heurísticas de nomeação entre funções
Análise personalizadaDetecte padrões (constantes criptográficos, gadgets)
Exportar dadosDespeje funções/strings para um arquivo
Automatizar diferençaScript comparações entre muitas amostras

Fluxos de Trabalho Comuns

MetaAbordagem
Entender um patch de segurançaCompare binários pré/pós → estude funções alteradas
Triagem de uma amostra nativaStrings + imports → descompile funções suspeitas
Rastrear variantes de malwareCompare nova amostra contra membro da família conhecida
Recuperar lógicaUse o descompilador + renomeie/comente para reconstruir intenção

Relyze vs Outros Desassembladores

AspectoRelyzeIDA ProGhidraBinary Ninja
DescompiladorSimSim (Hex-Rays)SimSim
Diferença bináriaConstruídaAdd-on (BinDiff)PluginsPlugins
ScriptingRubyPython/IDCJava/PythonPython
CustoGratuito + ProComercialGratuitoComercial

Recursos