Un decompilatore prende come input un file eseguibile, e tenta di creare un livello alto, compilabile file sorgente, forse anche mantenibile che fa la stessa cosa.
È quindi l'opposto di un compilatore, che prende un file di origine e rende un eseguibile. Tuttavia, un decompilatore generale non cerca di invertire ogni azione del decompilatore, piuttosto trasforma il programma di input più volte fino a quando il risultato è il codice sorgente di alto livello. Essa, pertanto, non sarà ricreare il file sorgente originale; Probabilmente nulla di simile.
Non importa se il file eseguibile ha simboli o meno, o è stato compilato da una lingua particolare. (Tuttavia, linguaggi dichiarativi come ML non sono considerati.)
L'intento è quello di creare un decompilatore reindirizzabile (cioè quello che può decompilare i diversi tipi di file di codice macchina con modesto sforzo, ad esempio X86-finestre, sparc-solaris, ecc). Si è inoltre destinato ad essere altamente modulare, in modo che le diverse parti del decompiler possono essere sostituiti con moduli sperimentali. E 'stato destinato a diventare finalmente interattiva, la IDA Pro, perché alcune cose (non solo nomi e commenti di variabili, anche se questi sono ovviamente molto importanti) richiedono un intervento di esperti. Sia l'interattività appartiene alla decompiler o in uno strumento separato rimane poco chiaro.
Trasformando la semantica di singole istruzioni, e utilizzando tecniche potenti come Analisi statica singola assegnazione dataflow, Boomerang dovrebbe essere (sostanzialmente) indipendente l'esatto comportamento del compilatore che è accaduto per essere utilizzato. L'ottimizzazione non dovrebbe influire sui risultati. Quindi, l'obiettivo è un decompiler generale.
Limitazioni:
· Nel caso si voglia provare Boomerang in quanto è come un decompilatore (al contrario di sperimentare con esso, o migliorarlo), essere consapevoli dei suoi gravi limitazioni. Agli inizi del 2004, Boomerang sarà solo decompilare X86 (Linux / X86 o Windows PE), SPARC (Solaris, o presumibilmente Linux / SPARC), o Power PC programmi (/ X Mac OS Linux / PPC o). In particolare, si noti che non decompilare programmi DOS o NE (Windows 3.1). L'aggiunta di un altro processore è un grande (diversi mesi) impresa.
· E 'solo generare C, non C ++. Sarà decompilare C ++ programmi, naturalmente, (e tutti i tipi di programmi, tra cui assembler). Si può essere in grado di consegnare modificare alcuni programmi C ++ in codice sorgente C ++ utilizzabile. Per i programmi MSVC compilati, allo stato attuale si deve spoonfeed decompilatore e dirgli che ci sia un parametro registro (thiscall convenzione di chiamata). Gli switch per gestire questo sono complesse; vedere utilizzando l'interruttore -sf.
Dettagli del software:
Versione: alpha 0.3
Data di caricamento: 3 Jun 15
Licenza: Libero
Popolarità: 182
I commenti non trovato