Che cos'è un decompiler?
Un Decompiler è un programma che prende codice eseguibile e produce il codice sorgente di esso.
Un compilatore genera codice eseguibile da codice sorgente; decompiler Un tentativo di invertire questo processo.
Un decompiler è una versione specializzata di un disassembler. Mentre un disassembler converte codice eseguibile di linguaggio assembly, un decompiler tentativi di andare oltre e convertire il codice eseguibile di codice sorgente in un linguaggio di livello più alto, come ad esempio C o C + +.
Decompilers
Boomerang
L'obiettivo è il progetto Boomerang è un tentativo di sviluppare una vera e propria macchina per decompiler codice programmi attraverso la comunità open source. Un decompiler prende come input un file eseguibile, e cerca di creare un livello elevato, compilable, eventualmente anche la manutenzione del file sorgente che fa la stessa cosa. E 'quindi il contrario di un compilatore, che prende un file sorgente e fa un eseguibile. Tuttavia, un generale decompiler non cerca di invertire ogni azione dello decompiler, piuttosto che trasforma il programma di input ripetutamente fino a quando il risultato è elevato livello di codice sorgente. E ', pertanto, non ricreare il file sorgente originale; probabilmente nulla di simile. Non importa se il file eseguibile ha simboli o meno, o è stato compilato da una particolare lingua. (Tuttavia, dichiarativa lingue come il ML non sono considerati.)
L'intento è quello di creare un retargetable decompiler (vale a dire quello che può decompilare diversi tipi di codice macchina file con modesto sforzo, ad esempio, X86-finestre, sparc-Solaris, ecc.) E 'stato inoltre destinato a essere altamente modulare, in modo che le diverse parti del decompiler può essere sostituito con moduli sperimentali. E 'stato destinato a diventare interattiva, a la IDA Pro, perché alcune cose (non solo nomi delle variabili e commenti, anche se questi sono ovviamente molto importante) richiedono l'intervento di esperti. Se l'interattività appartiene in decompiler o in un apposito strumento rimane poco chiaro.
Trasformando la semantica delle singole istruzioni, e mediante potenti tecniche come unico statico Assegnazione dataflow analisi, Boomerang dovrebbero essere (in gran parte) indipendenti l'esatto comportamento del compilatore che è accaduto ad essere utilizzati. Ottimizzazione non dovrebbe pregiudicare i risultati. Di conseguenza, l'obiettivo generale è un decompiler.
Segnalibro Che cos'è un decompiler?



