Decompiler |
|
Een decompiler is een programma dat uitvoerbare code neemt en produceert broncode van het. Een compiler maakt uitvoerbare code uit de broncode; een decompiler pogingen om dit proces te keren. Een decompiler is een gespecialiseerde versie van een disassembler. Terwijl een disassembler uitvoerbare code converteert naar assembler, een decompiler pogingen om verder te gaan en de uitvoerbare code te converteren naar de broncode in een hoger niveau taal, zoals C of C + +. DecompilersBoomerangHet doel is de Boomerang-project is een poging om een echte decompiler voor programma's machine-code te ontwikkelen door middel van de open source gemeenschap. Een decompiler neemt als input een uitvoerbaar bestand, en pogingen om een hoog niveau, compileerbaar, misschien zelfs onderhoudbaar bronbestand dat hetzelfde doet creëren. Het is dus het tegenovergestelde van een compiler, die een bron bestand neemt en maakt een executable. Echter, een algemeen decompiler niet proberen om te keren om actie van de decompiler, in plaats transformeert zij de input programma totdat het resultaat is een hoog niveau broncode. Het zal dus niet opnieuw het oorspronkelijke bronbestand; waarschijnlijk niets like it. Het maakt niet uit of het uitvoerbare bestand symbolen of niet, of is samengesteld uit een bepaalde taal. (Echter, zijn declaratieve talen zoals ML niet beschouwd.) De bedoeling is om een retargetable decompiler te maken (dwz een die kan decompileren verschillende soorten bestanden machine code met een bescheiden inspanning, bijv. X86-ramen, sparc-solaris, etc). Het was ook bedoeld om zeer modulair zijn, zodat de verschillende delen van de decompiler kan worden vervangen met experimentele modules. Het was de bedoeling om uiteindelijk interactief, a la IDA Pro, omdat sommige dingen (niet alleen 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 de individuele instructies, en het gebruik van krachtige technieken zoals statische Single Opdracht dataflow analyse moeten Boomerang zijn (grotendeels) onafhankelijk van de precieze gedrag van de compiler dat is gebeurd om te worden gebruikt. Optimalisatie mag geen invloed op de resultaten. Vandaar dat het doel is een algemene decompiler. |
Discuss Decompiler in the forums.
You need to login or register to post comments.


