En decom tar som input en kjørbar fil, og forsøker å skape et høyt nivå, kan kompileres, kanskje til og med å vedlikeholde kildefilen som gjør det samme.
Det er derfor det motsatte av en kompilator, som tar en kildefil og gjør en kjørbar. Men en generell decompiler ikke forsøke å reversere hver handling av decompiler, snarere det forvandler inngangs programmet gjentatte ganger til ønsket resultat er høyt nivå kildekode. Det vil derfor ikke gjenskape den originale kildefilen; sannsynligvis ingenting som det.
Det spiller ingen rolle om den kjørbare filen har symboler eller ikke, eller ble samlet fra en bestemt språk. (Imidlertid er deklarative språk som ML ikke vurdert.)
Hensikten er å skape en retargetable decompiler (dvs. en som kan dekompilere ulike typer maskinkoden filer med beskjeden innsats, for eksempel X86-vinduer, SPARC-solaris, etc). Det ble også beregnet på å være svært modulær, slik at ulike deler av decom kan erstattes med eksperimentelle moduler. Det var ment å til slutt bli interaktiv, a la IDA Pro, fordi noen ting (ikke bare variabelnavn og kommentarer, selv om disse er selvsagt veldig viktig) krever ekspert intervensjon. Hvorvidt interaktivitet hører til i decom eller i et eget verktøy er fortsatt uklart.
Ved å transformere semantikken for individuelle instruksjoner, og ved hjelp av kraftige teknikker slik som statisk enkelt oppdrag dataflyt-analyse, bør være Boomerang (stort sett) uavhengig av den eksakte opptreden av kompilatoren som skjedde som skal brukes. Optimalisering bør ikke påvirke resultatene. Derfor er målet en generell decompiler.
Begrensninger:
· I tilfelle du ønsker å prøve Boomerang som det er som en decompiler (i motsetning til å eksperimentere med det, eller forbedre det), være klar over sine alvorlige begrensninger. Som i begynnelsen av 2004, Boomerang vil bare dekompilere X86 (Linux / X86 eller Windows PE), SPARC (Solaris, eller formodentlig Linux / SPARC), eller Power PC (Linux / PPC eller Mac OS / X) programmer. Spesielt oppmerksom på at det ikke vil dekompilere DOS eller NE (Windows 3.1) programmer. Legge en annen prosessor er en stor (flere måneder) foretaket.
· Det vil bare generere C, ikke C ++. Det vil dekompilere C ++ programmer selvfølgelig (og noen typer programmer, inkludert assembler). Du kan være i stand til å levere redigere noen C ++ programmer til brukbar C ++ kildekode. For MSVC kompilerte programmer, i dag må du spoonfeed den decom og fortelle den at det er ett register parameter (thiscall kall konvensjonen). Bryterne å håndtere dette er komplekse; Se Bruke -sf bryteren.
Prog.varedetaljer:
Versjon: alpha 0.3
Last opp dato: 3 Jun 15
Lisens: Gratis
Popularitet: 182
Kommentarer ikke funnet