0Pricing
Ethical Hacking Academy · Lezione

Fondamenti del disassemblaggio

Ghidra e IDA

Fondamenti del disassemblaggio è una lezione Ethical Hacking Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ethical Hacking Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Che cos'è il disassemblaggio

Il disassemblaggio converte il codice macchina di un binario in istruzioni assembly leggibili dall'essere umano. Consente di leggere esattamente ciò che la CPU eseguirà.

È essenziale quando il codice sorgente non è disponibile, come accade sempre con i malware.

Disassemblaggio e decompilazione

Il disassemblaggio produce assembly. La decompilazione va oltre, ricostruendo uno pseudocodice approssimativo di alto livello simile al C.

Lo pseudocodice è più rapido da leggere; l'assembly è preciso. Gli analisti usano entrambi, alternandoli secondo necessità.

Ghidra

Ghidra è una suite gratuita e open source per il reverse engineering, sviluppata dalla NSA. Disassembla molte architetture e include un potente decompiler.

Il prezzo e le funzionalità ne fanno lo strumento di partenza preferito dalla maggior parte degli analisti.

IDA Pro

IDA Pro è da tempo lo standard commerciale, noto per il suo potente disassembler e per il decompiler (con il plugin Hex-Rays).

IDA Free e altri strumenti come Binary Ninja e radare2/Cutter sono alternative diffuse.

Caricamento del binario

Importa il campione nello strumento, che lo analizza automaticamente: identifica funzioni, riferimenti incrociati e stringhe.

Lo strumento crea una mappa del programma che può navigare, partendo dall'entry point o da import interessanti.

Lettura dell'assembly

Le istruzioni assembly spostano ed elaborano dati. Alcune istruzioni x86 comuni:

  • mov: copia i dati.
  • push / pop: operazioni sullo stack.
  • call / ret: chiamata e ritorno da una funzione.
  • cmp / jmp / je: confronto e diramazione.
mov eax, [ebp-4]
cmp eax, 0
je  short loc_401050

Riferimenti incrociati

I riferimenti incrociati (xref) mostrano dove viene usata una funzione o una stringa. Trovare gli xref verso un'API sospetta come CreateRemoteThread porta direttamente al codice pertinente.

Questo consente di orientarsi in base al comportamento anziché leggere il codice dall'inizio alla fine.

Seguire le chiamate API

Le chiamate all'API di Windows importate rivelano l'intento. Vedere VirtualAlloc, poi WriteProcessMemory e infine CreateRemoteThread costituisce una sequenza classica di iniezione di processo.

Riconoscere questi schemi è il cuore del reverse engineering del malware.

Vista a grafo

I disassembler offrono una vista a grafo che mostra i blocchi di base e i rami che li collegano. In questo modo viene visualizzato il flusso di controllo di una funzione, rendendo facili da seguire cicli e condizioni.

Per la logica complessa è molto più leggibile di un elenco lineare di istruzioni.

Integrazione con il debugging

Il disassemblaggio statico si abbina bene a un debugger. Quando il codice è offuscato o automodificante, è possibile impostare breakpoint ed eseguirlo passo passo durante l'esecuzione per vedere le istruzioni effettive.

Questo collegamento all'analisi dinamica è fondamentale per i campioni impacchettati, che saranno trattati nella prossima lezione.

Rinominare e annotare

Quando comprende le funzioni e le variabili, le rinomini e aggiunga commenti nel disassembler. Trasformare sub_401000 in decrypt_config rende molto più semplice il resto dell'analisi.

Questa etichettatura progressiva consente agli analisti di ricostruire gradualmente la logica completa di un campione di malware.

Verifica rapida

Ricordi la differenza tra i due output principali di Ghidra.

Riepilogo

Ora conosce le basi del disassemblaggio:

  • Il disassemblaggio produce assembly; la decompilazione produce pseudocodice.
  • Ghidra (gratuito) e IDA Pro sono gli strumenti principali.
  • Utilizzi le cross-reference e gli schemi delle chiamate API (come le sequenze di iniezione) per orientarsi in base al comportamento.
  • La vista a grafo visualizza il flusso di controllo; la abbini a un debugger per il codice offuscato.

Ora affronterà i packer con l'unpacking.

Domande Frequenti

La lezione «Fondamenti del disassemblaggio» è gratuita?

Sì — il testo completo di «Fondamenti del disassemblaggio» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ethical Hacking Academy, passa a CoddyKit PRO. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Cosa imparerò in «Fondamenti del disassemblaggio»?

Ghidra e IDA Eserciti Ethical Hacking Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ethical Hacking Academy?

Non è richiesta alcuna esperienza precedente. Ethical Hacking Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Fondamenti del disassemblaggio»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ethical Hacking Academy?

Sì. Ogni lezione Ethical Hacking Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Analisi statica
  2. Analisi dinamica
  3. Fondamenti del disassemblaggio
  4. Unpacking
← Torna a Ethical Hacking Academy