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

Descrizione

modifica

L'output 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. In effetti, uno strumento per il disassemblaggio completamente automatico non può raggiungere in genere risultati molto accurati, poiché il processo di disassemblaggio si riduce ad un famoso problema informatico noto come "problema della fermata" (per il quale è stato dimostrato che non esiste un algoritmo che lo risolva).[senza fonte] 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

modifica

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

modifica

Collegamenti esterni

modifica
Controllo di autoritàLCCN (ENsh2008005322 · GND (DE4817137-2 · J9U (ENHE987007559094605171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Interactive Disassembler

L'Interactive DisAssembler, più comunemente conosciuto con il nome IDA, è un disassembler largamente usato per il reverse engineering. Supporta numerosi

Debugger

individuazione in fase di runtime. La maggior parte dei debugger include un disassembler, come il programma objdump delle GNU Binutils. Il compito principale

Linguaggio assembly

Assembly Language, No Starch Press, 2010, ISBN 978-1-59327-301-9. Assembler Disassembler Linguaggio macchina Altri progetti Wikibooks Wikimedia Commons Wikibooks

Assembler

qualsiasi dispositivo dotato di un processore. Assembly Compilatore Debugger Disassembler Linguaggio macchina Altri progetti Wikizionario Wikimedia Commons Wikizionario

Packer (informatica)

vengono rilevate e gestite correttamente dai più comuni disassembler. In particolare, disassembler come IDA pro riescono a riconoscere la presenza di un

Apple II

Audio: altoparlante integrato Software integrato: monitor (assembler/disassembler e gestione del prompt dei comandi), Integer BASIC, SWEET 16 (un emulatore

Ida

Adrastea Ida – vero nome Ida Østergaard Madsen, cantante danese Interactive Disassembler International Dark-Sky Association International development association

Caratteri a larghezza fissa

caratteri a spaziatura fissa vengono utilizzati anche dall'output del disassembler, facendo sì che le informazioni vengano allineate in colonne verticali