Wat is een Decompiler?
Een Decompiler is een programma waarin rekening uitvoerbare code en produceert broncode van het.
Een compiler maakt uitvoerbare code in de broncode, A Decompiler pogingen om dit proces.
Een Decompiler is een gespecialiseerde versie van een disassembler. Terwijl een disassembler converteert uitvoerbare code te assembleertaal, een Decompiler pogingen om verder te gaan en de omschakeling van de uitvoerbare code naar de broncode in een hoger niveau van taal, zoals C of C + +.
Decompilers
Boomerang
Het doel is de Boomerang project is een poging om een echte Decompiler voor machineleesbare code's via de open source gemeenschap. Een Decompiler neemt als input een uitvoerbaar bestand, en pogingen om een hoog niveau, compilable, misschien zelfs onderhoudbaar bronbestand dat doet hetzelfde. Het is dus het tegenovergestelde van een compiler, die een bron bestand en maakt een executable. Echter, een algemeen Decompiler geen poging om elke actie van de Decompiler, maar transformeert zij de input-programma totdat het resultaat is een hoog niveau broncode. Het zal dus niet opnieuw het oorspronkelijke bronbestand; waarschijnlijk niets leuk. Het maakt niet uit als het uitvoerbare bestand heeft symbolen of niet, of is samengesteld uit een bepaalde taal. (Echter, declaratieve talen zoals ML niet worden beschouwd.)
De bedoeling is het creëren van een retargetable Decompiler (dwz een die kan decompileren verschillende soorten machine-code-bestanden met een bescheiden inspanning, bijvoorbeeld X86-vensters, sparc-solaris, etc). Het was ook bedoeld om te worden zeer modulair, zodat de verschillende onderdelen van het Decompiler kan worden vervangen met experimentele modules. Het was de bedoeling om uiteindelijk interactief, a la IDA Pro, omdat sommige dingen (niet alleen de variabele namen en opmerkingen, maar deze zijn uiteraard zeer belangrijk) vereisen deskundige interventie. Of de interactiviteit thuishoort in de Decompiler of in een apart instrument blijft onduidelijk.
Met de omzetting van de semantiek van individuele instructies, en het gebruik van krachtige technieken zoals Statische Single Opdracht gegevensstroom analyse, Boomerang moeten worden (grotendeels) onafhankelijk van de exacte gedrag van de compiler dat is gebeurd om te worden gebruikt. Optimalisatie mag geen afbreuk doen aan de resultaten. Vandaar dat het doel is een algemene Decompiler.
|
Bookmark Wat is een Decompiler?

