Relyze - Cheatsheet Disassembler Interattivo & Diff
Relyze è una piattaforma commerciale di disassembly, decompilazione e diffing binario interattiva per software nativo, supportando x86, x64, ARM32 e ARM64. Analizza i binari PE/ELF in funzioni e grafi di flusso di controllo, fornisce un decompilatore per recuperare pseudocodice di alto livello, e include un potente motore di diff binario per confrontare due versioni di un binario — prezioso per patch analysis e tracking delle varianti di malware. È estensibile tramite un framework di plugin/scripting Ruby. Un”edizione gratuita non commerciale è disponibile.
Installazione
| Passaggio | Note |
|---|
| Download | Ottieni l”installer dal sito ufficiale (Windows) |
| Edizioni | Free (non-commercial) e Professional |
| Primo avvio | Configura il decompilatore e le opzioni di analisi |
| Plugin | Scripting Ruby disponibile out of the box |
Flusso di Lavoro di Analisi
| Azione | Descrizione |
|---|
| Apri un file | Analizza un binario PE o ELF in funzioni/CFG |
| Vista Funzioni | Scorri le funzioni scoperte |
| Vista Grafo | Grafo di flusso di controllo della funzione selezionata |
| Decompilatore | Recupera pseudocodice simile a C per una funzione |
| Stringhe | Elenca le stringhe referenziate e i loro xref |
| Imports/Exports | Ispeziona le tabelle di import/export |
| Cross-references | Salta a dove una funzione/dato è usato |
Essenziali di Navigazione
| Task | Come |
|---|
| Rinomina un simbolo | Selezionalo e rinomina (propagazione a xref) |
| Commento | Annota istruzioni/funzioni |
| Segui una call | Doppio-click su un target di call |
| Vai a indirizzo | Casella di navigazione dell”indirizzo |
| Cambia vista | Attiva/disattiva disassembly / grafo / decompilatore |
Diffing Binario
Il motore diff di Relyze confronta le funzioni tra due binari e le classifica come identiche, cambiate, aggiunte o rimosse — il flusso di lavoro principale per analizzare una patch di sicurezza o confrontare campioni di malware.
| Task | Come |
|---|
| Inizia un diff | Apri binario A, poi diff contro binario B |
| Funzioni Matchate | Rivedi le funzioni accoppiate nei due build |
| Funzioni Cambiate | Focalizzati su funzioni il cui codice è diverso |
| Aggiunte/rimosse | Vedi cosa la patch ha introdotto o cancellato |
| Port annotations | Trasporta nomi/commenti da un build al prossimo |
Pattern di patch analysis: diff i binari pre-patch e post-patch, concentrati sul piccolo insieme di funzioni cambiate, e studia cosa il vendor ha aggiustato per capire la vulnerabilità sottostante.
Scripting Ruby
Relyze espone il suo modello di analisi a Ruby per l”automazione.
# Concettuale: itera le funzioni e segnala quelle grandi
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 | Esempio |
|---|
| Bulk renaming | Applica euristiche di naming tra le funzioni |
| Custom analysis | Rileva pattern (costanti crypto, gadget) |
| Export data | Dump di funzioni/stringhe a file |
| Automate diffing | Script per confronti tra molti campioni |
Flussi di Lavoro Comuni
| Obiettivo | Approccio |
|---|
| Comprendi una patch di sicurezza | Diff pre/post binari → studia le funzioni cambiate |
| Triage di un campione nativo | Stringhe + imports → decompila funzioni sospette |
| Track varianti di malware | Diff nuovo campione contro un membro della famiglia noto |
| Recupera logica | Usa il decompilatore + rinomina/commento per ricostruire l”intento |
Relyze vs Altri Disassembler
| Aspetto | Relyze | IDA Pro | Ghidra | Binary Ninja |
|---|
| Decompilatore | Sì | Sì (Hex-Rays) | Sì | Sì |
| Binary diff | Built-in | Add-on (BinDiff) | Plugin | Plugin |
| Scripting | Ruby | Python/IDC | Java/Python | Python |
| Costo | Free + Pro | Commercial | Free | Commercial |
Risorse