Un disassemblatore o disassembler è un programma che traduce dal linguaggio macchina al linguaggio assembly. Effettua l'operazione inversa di un assembler.

Descrizione Loutput di un disassembler (detto disassemblato, o disassembly) è spesso fatto in modo da poter essere facilmente compreso dall'uomo piuttosto che per essere utilizzato come input per un assembler. Similmente, un decompilatore traduce il linguaggio macchina in un linguaggio ad alto livello.

Generalmente, in un codice sorgente in linguaggio assembly vengono utilizzate le costanti simboliche e i "commenti" del programmatore - annotazioni che sono ignorate dall'assembler ma servono a spiegare ad un altro programmatore cosa il programma fa e in che modo. Le costanti simboliche e i commenti vengono generalmente rimossi dall'assembler. La perdita di queste informazioni rende più difficile la comprensione del codice rispetto al codice sorgente originario. Per questo motivo, i disassembler interattivi avranno sempre una resa migliore rispetto a quelli automatici consentendo all'uomo di utilizzare la sua intelligenza nel processo di disassemblaggio.

Programmi famosi I disassembler sono tra gli strumenti più comunemente utilizzati per il reverse engineering del software.

Sono stati scritti molti disassembler. Alcuni esempi notevoli includono: RosASM- Assembler a 32 bit (disponibile sotto licenza GPL). Nonostante sia essenzialmente un assembler, contiene anche un disassembler molto potente (sebbene automatico) che è in grado di ricostruire una grande quantità di piccole applicazioni. Il supporto per applicazioni di maggiore dimensione è in via di sviluppo. Interactive Disassembler Un disassembler commerciale interattivo. Sourcer - Un altro disassembler commerciale.

Voci correlate Assembler Debugger

Collegamenti esterni

Categoria:Sviluppo software