Aller au contenu

Relyze - Désassembleur interactif et diff binaire

Relyze - Désassembleur interactif et diff binaire

Relyze est une plateforme commerciale de désassemblement interactif, de décompilation et de diff binaire pour les logiciels natifs, supportant x86, x64, ARM32 et ARM64. Il analyse les binaires PE/ELF en fonctions et graphes de flux de contrôle, fournit un décompilateur pour récupérer du pseudocode de haut niveau, et inclut un moteur diff binaire puissant pour comparer deux versions d”un binaire — inestimable pour l”analyse des correctifs et le suivi des variantes de malwares. Il est extensible via un framework de plugin/scripting Ruby. Une édition gratuite à usage non commercial est disponible.

Installation

ÉtapeNotes
TéléchargerObtenir l”installateur depuis le site officiel (Windows)
ÉditionsGratuit (non-commercial) et Professionnel
Premier lancementConfigurer le décompilateur et les options d”analyse
PluginsScript Ruby disponible par défaut

Flux de travail d”analyse

ActionDescription
Ouvrir un fichierAnalyser un binaire PE ou ELF en fonctions/CFG
Vue des fonctionsParcourir les fonctions découvertes
Vue graphiqueGraphe du flux de contrôle de la fonction sélectionnée
DécompilateurRécupérer le pseudocode de type C pour une fonction
ChaînesLister les chaînes référencées et leurs xrefs
Imports/ExportsInspecter les tableaux d”import/export
Références croiséesAccéder à l”endroit où une fonction/donnée est utilisée

Essentiels de la navigation

TâcheComment
Renommer un symboleSélectionner et renommer (se propage aux xrefs)
CommentaireAnnoter les instructions/fonctions
Suivre un appelDouble-cliquer une cible d”appel
Aller à l”adresseBoîte de navigation d”adresse
Basculer la vueBasculer la vue désassembly / graphique / décompilateur

Diff binaire

Le moteur diff de Relyze associe les fonctions entre deux binaires et les classe comme identiques, modifiées, ajoutées ou supprimées — le flux de travail principal pour analyser un correctif de sécurité ou comparer les exemples de malwares.

TâcheComment
Démarrer un diffOuvrir le binaire A, puis faire un diff par rapport au binaire B
Fonctions appariéesExaminer les fonctions appairées entre les deux builds
Fonctions modifiéesSe concentrer sur les fonctions dont le code diffère
Ajouté/suppriméVoir ce que le correctif a introduit ou supprimé
Porter les annotationsTransporter les noms/commentaires d”une build à la suivante

Motif d”analyse de correctif: diff les binaires pré-correctif et post-correctif, se concentrer sur le petit ensemble de fonctions modifiées, et étudier ce que le vendeur a corrigé pour comprendre la vulnérabilité sous-jacente.

Scripting Ruby

Relyze expose son modèle d”analyse à Ruby pour l”automatisation.

# Conceptuel: itérer les fonctions et signaler les 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
UtiliserExemple
Renommage en masseAppliquer les heuristiques de nommage sur les fonctions
Analyse personnaliséeDétecter les motifs (constantes cryptographiques, gadgets)
Exporter les donnéesVider les fonctions/chaînes dans un fichier
Automatiser le diffScript des comparaisons sur plusieurs exemples

Flux de travail courants

ButApproche
Comprendre un correctif de sécuritéDiff pré/post binaires → étudier les fonctions modifiées
Triage d”un exemple natifChaînes + imports → décompiler les fonctions suspectes
Suivre les variantes de malwaresDiff un nouvel exemple par rapport à un membre de la famille connu
Récupérer la logiqueUtiliser le décompilateur + renommer/commenter pour reconstruire l”intention

Relyze vs Autres désassembleurs

AspectRelyzeIDA ProGhidraBinary Ninja
DécompilateurOuiOui (Hex-Rays)OuiOui
Diff binaireIntégréAdd-on (BinDiff)PluginsPlugins
ScriptingRubyPython/IDCJava/PythonPython
CoûtGratuit + ProCommercialGratuitCommercial

Ressources